關於PHP的MCRYPT的解密有關問題

來源:互聯網
上載者:User
關於PHP的MCRYPT的解密問題
最近想找一個PHP的密匙可逆加密函數

幾經周折找到了MCRYPT。並在網上找到了一個DEMO

// Designate string to be encrypted 
$string = "song";
// Encryption/decryption key
$key = "memeda";
// Encryption Algorithm
$cipher_alg = MCRYPT_RIJNDAEL_128;
// Create the initialization vector for added security.
$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg, MCRYPT_MODE_ECB), MCRYPT_RAND);
// Output original string
print "Original string: $string

";
// Encrypt $string
$encrypted_string = mcrypt_encrypt($cipher_alg, $key, $string, MCRYPT_MODE_CBC, $iv);
// Convert to hexadecimal and output to browser
print "Encrypted string: ".bin2hex($encrypted_string)."

";
$decrypted_string = mcrypt_decrypt($cipher_alg, $key, $encrypted_string, MCRYPT_MODE_CBC, $iv);
print "Decrypted string: $decrypted_string";
?>



原程式當然可以直接加解密

但是把轉換後的16進位的字串還原成2進位的密文去解密的時候卻發現不能解密了

經過對比發現還原成2進位後的密文和直接加密完的密文是一樣的,為什麼不能解密就很困惑了 希望有人能幫我解答下哈
------解決方案--------------------
$iv 的值改變了
------解決方案--------------------
是的,這是公開祕密金鑰加密演算法
有兩個密鑰
一個是公開金鑰,即 iv 內建於你提供的加解密程式中
一個是私密金鑰,提供給使用者

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.