因项目需要,需要与对方的接口对接 ,对方是.net开发的,需要与我们的php对接,但是php 3des加密后,.net的无法解析,且加密后的字符串与.net加密后的字符串,前半部分一样,后半部分就不一样!,也就是说加密后的字符串不相等,有高手吗,高分求解?
.net程序:
public static string encrypt3des(string a_strstring, string a_strkey)
{
tripledescryptoserviceprovider des = new tripledescryptoserviceprovider();
des.key = asciiencoding.ascii.getbytes(a_strkey);
des.mode = ciphermode.ecb;
icryptotransform desencrypt = des.createencryptor();
byte[] buffer = asciiencoding.ascii.getbytes(a_strstring);
return convert.tobase64string(desencrypt.transformfinalblock(buffer, 0, buffer.length));
}
我写的php加密程度:
function encrypt($string) {
$key = 05217c03d7b74fe581fc449b;
$cipher_alg = mcrypt_tripledes;
$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,mcrypt_mode_ecb), mcrypt_rand);
$encrypted_string = mcrypt_encrypt($cipher_alg, $key, $string, mcrypt_mode_ecb, $iv);
return base64_encode($encrypted_string);//转化成16进制
}
