私はopensslを使用してテキストを暗号化し、これをmysqlデータベースに配置します。これは正常に機能しますが、長いテキストを使用すると、復号化されたテキストが破損します。
個人的には、これはmysqlがこのテキストをデータベースに保存する方法によるものだと思います。暗号化されたテキストには英数字ではない文字がたくさんあります。しかし、それについてはよくわかりません。また、mysqlでどの照合を使用するかわかりません。現在、* utf8_unicode_ci *に設定していますが、それでもデータが破損しています。
ライブの例はここで見ることができます:http://todolist.x10.mx
Username: example
Password: password
破損したデータを表示するには、をクリックしますDownload Backup
。
もちろん、コードの下に$encrypted
データベースに保存されます。このコードはデータベースがなくても正常に機能します。
<?php
$source = 'very long text';
$iv = "1234567812345678";
$pass = 'difficultpassphrase';
$method = 'aes-256-ofb';
$encrypted = openssl_encrypt ($source, $method, $pass, true, $iv);
echo $encrypted;
$decrypted = openssl_decrypt ($encrypted, $method, $pass, true, $iv);
echo $decrypted;
?>
時間と専門知識をよろしくお願いします。