簡體   English   中英

在PHP中找不到正確的3DES密碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM