내 스크립트는 을 사용하여 다른 프로그램에서 RSA로 암호화 된 문자열의 암호를 해독합니다. 현재는 파일에 기록합니다. 그러나 텍스트 편집기에서 열려고하면 인코딩을 감지 할 수 없다고 말합니다. 내가 그것을 반향하려고하면 아무 것도 나타나지 않습니다. 길이를 출력하면 3
대신 256
이 표시됩니다.RSA 암호 해독 데이터 손상
출력 파일에서 cat
터미널 명령을 사용하면 올바른 데이터가 제공되므로 암호 해독이 올바르게 수행되었음을 알고 있습니다.
$ cat decrypted.txt
이것은 문자 인코딩 문제인 것처럼 보입니다. 내가 듣는 문제는 PHP에서 많은 고통을 줄 수 있습니다. 나는 심지어 utf8_encode()
을 시도했다. 문제는 무엇일까요?
이 여기에 코드입니다 :
$results = '';
openssl_private_decrypt(
base64_decode(
<<<EOS
QWlG+AZIt9GE0hw0wwcPRtUWueMLBxj3YWpa5zQBoz1ttnt7TvlxDtYWZcvaUL/qr2CJCADE2iTR
G72FhAwew2fhqlqmsxL7Nns3yegflTTMXyilVM3mPU4Cx94ylLfa+ZrqrNEepaRorNJ/js5iTq9i
avegO/kYOv4zhEsZirlk/Mj0vVv6irWo8WyZoCDC2SwfGWeSUI8F4pq4FUkRh9V/0zAUZ+3P0A7Z
SrA80dSa6U/J+poRcmE1vRLQXvM8dBtFRKmb0zfltLUBMcMhcglzAhcpemJ99OCZmUuynFRcRNkj
CkOLsO+lSHntcbmXqsKE+of78gnU3tp5hHSHIg==
EOS
),
$results,
openssl_pkey_get_private(
// load private key
),
OPENSSL_NO_PADDING
);
echo $results;
코드 및 샘플 입력 – AbiusX
특히 암호화 된 문자열을 파일에 쓰는 코드를 표시 한 다음 다시 읽는 데 사용하는 코드를 표시 할 수 있습니까? 또한 여기서는'utf8_encode/decode'를 사용해서는 안됩니다. 암호화 된 데이터는 문자 스트림이 아닌 바이트 스트림입니다. – Charles
길이 차이는 암호화 기능이 원본 데이터를 암호화 알고리즘의 필수 블록 크기로 채우는 데도 발생할 수 있습니다. –