首頁 > 後端開發 > php教程 > 关于PHP的MCRYPT的解密有关问题

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-13 11:52:00
原創
800 人瀏覽過

关于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 />?> 
登入後複製


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

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

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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
javascript - js正規符合特定字串
來自於 1970-01-01 08:00:00
0
0
0
為什麼說非物件呼叫成員函數fetch()
來自於 1970-01-01 08:00:00
0
0
0
資料庫設定檔必須要用二維數組
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板