这真让我难过......
我正在使用PHP搞乱加密。
使用记忆,一切都很好......
//encrypt the sensitive data
$encryptedData = encrypt($senstiveData, $theKey);
//decrypt the data
$decryptedData = decrypt($encryptedData, $theKey);
//print decrypted string
echo "<br>Decrypted String:" . $decryptedData;
即。解密的字符串:包含正确的值。
但是,如果我把信息写到文件中......它会中断。
$orderFile = "orders.dat";
$fh = fopen($orderFile, 'a') or die("can't open file");
fwrite($fh, $keyCode . "\n");
$serializedArray = serialize($encryptedData);
fwrite($fh, $serializedArray . "\n");
fclose($fh);
$file = fopen("orders.dat","r");
//key is first line in 'orders.dat'
$theKey = fgets($file);
//serialised array is second line...
$unserializedArray = unserialize(fgets($file));
$decryptedData2 = decrypt($unserializedArray, $theKey);
//print decrypted string
echo "<br>Decrypted String:" . $decryptedData2 . "<br>";
而答案是错误的。
我已经验证两个版本中使用的密钥和数组是相同的(即重构的非序列化数组包含与序列化之前相同的值),当我写入文件时,翻译中是否会丢失某些东西?
我应该开始考虑调试这个想法吗?
任何建议都将不胜感激, 米奇。
答案 0 :(得分:2)
从fwrite()
删除换行符。即,不要这样做:
fwrite($fh, $keyCode . "\n");
\n
会搞砸加密/解密程序。
这应该足够了:
fwrite($fh, $keyCode);