在 dephi 中如何像 PHP openssl_encrypt($message, "aes-128-ecb",

问题描述

我有接下来的 2 个 PHP 函数用于加密和解密。 它们工作正常。

<Results are:
AbvmAYxQAhQOPF50UZLj9bc
4162766d415978514168514f50463530555a4c6a396263
LR12;15;41e33b9

我的问题: 我必须在 delphi 中创建 crypt 函数并在 PHP 中解码。 我尝试使用:

  1. TDCP_rijndael:ECB 属性不存在。
  2. Turbopower LockBox3 - 属性 AdvancedOptions2.optOpenSSL_CompatiblityMode:= Tue; --> 错误“高级选项仍在开发中,尚未可用”。
  3. OpenSSL260 软件包演示、EldoS、Alexander Ionov ElAES.pas、FlyUtils.AES.... -> 在我手中不起作用。

请帮我在 Delphi 中编写这个 PHP crypt 程序。 注意! ecb 是强制性的。

哈里·卡尔玛

?PHP

error_reporting(E_ALL);

$qkey = hex2bin("58E5B91D04E43502683135770530BA86");
$qkeyver = chr(0x01);

$QRcode =  qencrypt($qkey,$qkeyver) ; //generates QR code string
print qdecrypt($QRcode,$qkey) . "</br>"; //decrypts QR code string

function qdecrypt($token,$key)
{
        echo $token . "<br />\n";
        echo bin2hex($token) . "<br />\n";
        $token = str_replace("-","+",$token);
        $token = str_replace("_","/",$token);
        $p = strlen($token) % 3;
        //base64 padding fix
            while ($p > 1) {
        $token = $token . "=";
        $p--;
        $token = base64_decode($token);
    }
    $token = substr($token,1); //removing key number
    return openssl_decrypt($token,"aes-128-ecb",$key,OPENSSL_RAW_DATA);
}


function qencrypt($key,$keyver)
{
        $message = "LR12;15;41e33b9";
        $token   = openssl_encrypt($message,OPENSSL_RAW_DATA);
        //echo $token;
        $token   = $keyver . $token;
        $token   = base64_encode($token);
        $token   = str_replace("+","-",$token); //make url valid
        $token   = str_replace("/","_",$token); //make url valid
        $token   = rtrim($token,"=");
        return $token;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)