10,606
社区成员
发帖
与我相关
我的任务
分享
select encryptbypassphrase('secretKey','Hello World')
--> 0x0100000023E0B078CC86A273E5C47FA76887FF2D8CEE788940E79723D69ECE483DF2707F
declare @bin varbinary(MAX)
set @bin=0x0100000023E0B078CC86A273E5C47FA76887FF2D8CEE788940E79723D69ECE483DF2707F
select cast(N'' as xml).value('xs:base64Binary(xs:hexBinary(sql:variable("@bin")))', 'varchar(MAX)');
--> AQAAACPgsHjMhqJz5cR/p2iH/y2M7niJQOeXI9aezkg98nB/
declare @str varchar(MAX);
set @str = 'AQAAACPgsHjMhqJz5cR/p2iH/y2M7niJQOeXI9aezkg98nB/';
select cast(N'' as xml).value('xs:base64Binary(sql:variable("@str"))', 'varbinary(MAX)');
--> 0x0100000023E0B078CC86A273E5C47FA76887FF2D8CEE788940E79723D69ECE483DF2707F
select convert(varchar,decryptbypassphrase('secretKey',0x0100000023E0B078CC86A273E5C47FA76887FF2D8CEE788940E79723D69ECE483DF2707F))
--> Hello World
<?php
$base64_encoded = "AQAAACPgsHjMhqJz5cR/p2iH/y2M7niJQOeXI9aezkg98nB/";//发送过来的数据
$base64_decoded = base64_decode($base64_encoded);
$binary_of_encryptbypassphrase = "";
foreach(str_split($base64_decoded) as $c){
$hex = (sprintf("%X", ord($c)));
if(strlen($hex) == 1){
$hex = '0'.$hex;
}
$binary_of_encryptbypassphrase .= $hex;
}
echo $binary_of_encryptbypassphrase;//到这里我就重新转换回与SQLSERVER里显示出来的结果是一样的。
//然后我想解密。。。但是结果却是乱码
$decoded = trim(mcrypt_decrypt(MCRYPT_3DES, 'secretKey', $binary_of_encryptbypassphrase, MCRYPT_MODE_CBC));
echo ($decoded);
?>