问题描述
我有接下来的 2 个 PHP 函数用于加密和解密。 它们工作正常。
<Results are:
AbvmAYxQAhQOPF50UZLj9bc
4162766d415978514168514f50463530555a4c6a396263
LR12;15;41e33b9
我的问题: 我必须在 delphi 中创建 crypt 函数并在 PHP 中解码。 我尝试使用:
- TDCP_rijndael:ECB 属性不存在。
- Turbopower LockBox3 - 属性 AdvancedOptions2.optOpenSSL_CompatiblityMode:= Tue; --> 错误“高级选项仍在开发中,尚未可用”。
- 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 (将#修改为@)