この質問はパート2としてmy previous questionに役立ちます。
私は同様の質問をしている他のスレッドに出くわしましたが、PHPの最近の変更(つまり、mcryptの削除)のために、私は2017/18でOpenSSLを使ってこれをどうやって行うのが最適かを考えています。端末でのPHP生成OpenSSL文字列の解読
私は、PHPスクリプトで以下の機能を考案しました。プレーンテキスト文字列を受け取り、暗号化します。
<?php
function encrypt($myString) {
$data = $myString;
$key = 'B374A26A71490437AA024E4FADD5B497FDFF1A8EA6FF12F6FB65AF2720B59CCF';
$iv = '61736466673534336173646667353433';
$encrypted = openssl_encrypt($data, 'AES-256-CBC', $key, 0, hex2bin($iv));
return $encrypted;
}
?>
戻り値:6Q7DM7VGEeJdnGf2h9k1Kgの==
私の質問は非常に簡単です:そのプレーンテキストに戻す上記の結果を回しターミナル解読同等とは何ですか?
は、これまでのところ私は(速く変数の操作のために)AppleScriptの中で次のターミナルコマンドを使用することができましたが、do shell script
内容はターミナルコードです:
set encKey to "B374A26A71490437AA024E4FADD5B497FDFF1A8EA6FF12F6FB65AF2720B59CCF"
set encIV to "61736466673534336173646667353433"
set stringToEnc to "my plain text string"
set encrypted to (do shell script "echo '" & stringToEnc & "' | openssl enc -aes-256-cbc -a -K " & encKey & " -iv " & encIV)
set decrypted to (do shell script "echo '" & encrypted & "' | openssl enc -aes-256-cbc -a -d -K " & encKey & " -iv " & encIV)
しかし、これは中(encrypted
を設定し、そのまま働きながら、 PHP関数の出力に上記のスクリプトが)、それはエラーがスローされます。
bad decrypt 140735624655752:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-22/libressl/crypto/evp/evp_enc.c:529:
this、thatここSO上で同様の質問を勉強したので、私は困惑していWH yエラーは発生し続けます。 key
とiv
(私はhex2bin()
をPHPで使用しました)のエンコーディングが原因であると考えています。使用しないと別の結果が得られます。
ターミナルコマンドには何が欠けていますか?誰かが私に相当する解読を手助けできるなら、私は本当に助けに感謝します。