[英]Cannot find the right 3DES cipher in PHP
我正在嘗試計算PHP函數以使ECDES模式下具有3DES(三重DES) 。 但是我得到了錯誤的結果。
我的結果:615EDC0E8EAD5DDE
預期結果:7B66D9A5010A8035
(預期結果是通過HSM計算並通過網站確認的) http://tripledes.online-domain-tools.com/
這是我的PHP函數,將其作為參數:
$ data =“ 3200000025381234”
$ key =“ 98137332E06BBA25AEE51CFD150EA8E3”
function tripleDES($data, $key) {
$key= hex2bin($key);
$data = hex2bin($data);
$enc = openssl_encrypt($data, 'des-ede3', $key, OPENSSL_RAW_DATA |
OPENSSL_ZERO_PADDING);
return strtoupper(bin2hex($enc));
}
我究竟做錯了什么 ?
多虧了Topaco的回答,我才明白我的錯誤。 因此,我使用了這個github項目: https : //github.com/gilfether/phpcrypt,並以此方式更正了我的代碼(使用我的16字節密鑰):
function triple_DES($data, $key){
$key = hex2bin($key);
$data = hex2bin($data);
$crypt = new PHP_Crypt($key, PHP_Crypt::CIPHER_3DES, PHP_Crypt::MODE_ECB);
$encrypt = $crypt->encrypt($data);
return strtoupper(bin2hex($encrypt));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.