Heim > Backend-Entwicklung > PHP-Tutorial > 关于PHP的MCRYPT的解密有关问题

关于PHP的MCRYPT的解密有关问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-13 11:52:00
Original
801 Leute haben es durchsucht

关于PHP的MCRYPT的解密问题
最近想找一个PHP的密匙可逆加密函数

几经周折找到了MCRYPT。并在网上找到了一个DEMO

<?php <br />// Designate string to be encrypted <br />$string = "song"; <br />// Encryption/decryption key <br />$key = "memeda"; <br />// Encryption Algorithm <br />$cipher_alg = MCRYPT_RIJNDAEL_128; <br />// Create the initialization vector for added security. <br />$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg, MCRYPT_MODE_ECB), MCRYPT_RAND); <br />// Output original string <br />print "Original string: $string <p>"; <br />// Encrypt $string <br />$encrypted_string = mcrypt_encrypt($cipher_alg, $key, $string, MCRYPT_MODE_CBC, $iv); <br />// Convert to hexadecimal and output to browser <br />print "Encrypted string: ".bin2hex($encrypted_string)."<p>"; <br />$decrypted_string = mcrypt_decrypt($cipher_alg, $key, $encrypted_string, MCRYPT_MODE_CBC, $iv); <br />print "Decrypted string: $decrypted_string"; <br />?> 
Nach dem Login kopieren


原程序当然可以直接加解密

但是把转换后的16进制的字符串还原成2进制的密文去解密的时候却发现不能解密了

经过对比发现还原成2进制后的密文和直接加密完的密文是一样的,为什么不能解密就很困惑了 希望有人能帮我解答下哈
------解决方案--------------------
$iv  的值改变了
------解决方案--------------------
是的,这是公开密钥加密算法
有两个密钥
一个是公钥,即 iv 内置于你提供的加解密程序中
一个是私钥,提供给使用者

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage