저는 멍청한 개발자입니다. 일부 데이터의 해독을 시도하고 있지만 PHP에서 OpenSSL을 사용할 때 응답이 없습니다. 또한 데이터 암호화를 시도 할 때 OpenSSL은 문자 블록을 추가합니다.AES-256-CBC 암호화/해독 16 진수 문자열 PHP에서 openssl 사용
<?php
$dataToDecrypt = hex2bin("C2E5CDFE8BBFBC7350D40538434824DD3E11520B89A5BFDE24FA064DB2EED6EA");
$aesKey = hex2bin("E3FB8EA130722FA99266B96B77C2735C39393939393939393920202020202020");
$iv = hex2bin("00000000000000000000000000000000");
$result = openssl_decrypt($dataToDecrypt, 'AES-256-CBC', $aesKey, OPENSSL_RAW_DATA, $iv);
echo bin2hex($result);
?>
$result
가 있어야하는데 : : 나는 VB에서, 심지어 AES encription 웹 페이지 (http://aes.online-domain-tools.com/)과이 시도했습니다
C3A6149C73FFBE4EAD36DC62FE40877D17CD690F37B06058CA3D65A345CC8212
이
코드입니다 결과가 정확합니다. 하지만 PHP로 시도 할 때 대답이 없습니다.동일한 정보로 암호화 할 때 암호화 된 데이터가 다른 것으로 나타났습니다. 나는 결과가 암호화되면
<?php
$dataToEncrypt = hex2bin("C3A6149C73FFBE4EAD36DC62FE40877D17CD690F37B06058CA3D65A345CC8212");
$aesKey = hex2bin("E3FB8EA130722FA99266B96B77C2735C39393939393939393920202020202020");
$iv = hex2bin("00000000000000000000000000000000");
$result = openssl_encrypt($dataToEncrypt, 'AES-256-CBC', $aesKey, OPENSSL_RAW_DATA, $iv);
echo bin2hex($result);
?>
:
C2E5CDFE8BBFBC7350D40538434824DD3E11520B89A5BFDE24FA064DB2EED6EA3A3ED407DC78D6AF9030BAB90CB40EAD
나는 (3A3ED407DC78D6AF9030BAB90CB40EAD
) 예상보다 32 자 이상을 받기는 코드입니다. VB에서 암호화하거나 앞서 언급 한 웹 페이지를 사용하면 32 개의 추가 문자를 얻지 못합니다.
왜 이런 일이 발생합니까? 내가 놓친 게 있니? 나는 며칠 동안 답을 찾고 있었다. 어떤 도움을 주셔서 감사합니다.
작은 따옴표 대신 백틱 : \'을 사용하여 인라인 코드를 강조 표시 할 수 있습니다. 귀하의 영어는 괜찮지 만 OpenSSL 및 PHP와 같은 이름에 대문자를 사용하면 질문을보다 전문적으로 보이게하는 것이 좋습니다. 변경 사항을 보려면 [this] (https://stackoverflow.com/posts/44140853/revisions)를 클릭하십시오. –