2 chedanya chedanya 于 2016.03.06 15:00 提问

php 3des加密.net无法解析 2C

因项目需要,需要与对方的接口对接 ,对方是.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进制

}

1个回答

devmiao
devmiao   Ds   Rxr 2016.03.06 23:16
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
3des加密解密base64编码解码完全与ASP.NET,JAVA,兼容的js
3des加密解密 base64编码解码的源代码 完全与标准算法一致,与C# java 结果一致
PHP使用3DES算法加密解密字符串
3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称。它相当于是对每个数据块应用三次DES加密算法。由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解;3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。 项目
php中3DES加密技术
因为工作中要用到加密,接口中要求也是用密文传输数据,用到3des加密,就研究了一下。 在网上也找了好多,但是都不可以用,没法正式运行,终于找到一个可以运行的,自己又修改了一下,记录下来,以后还可能会用到。   下面安装我要调用的接口文实例: 接口要求:先用3DES对数据进行加密,在用BASE64进行加密。即:BASE64(3DES(value))。
3des加密中- pkcs#5和pkcs#7填充的区别
pkcs#5和pkcs#7填充的区别 最近做到了关于加密和解密的部分。 使用算法AES的时候,涉及到数据填充的部分,数据的填充有很多种方案,用的比较多的有pkcs#5,pkcs#7, 下面的都是从网上转来的。结论就是在AES 的使用中,pkcs#5填充和pkcs#7填充没有任何区别。   PKCS #7 填充字符串由一个字节序列组成,每个字节填充该填充字节序列的长度。 假定块长
php、java、android、ios通用的3des加密方法
php、java、android、ios通用的3des方法 php <?php class DES3 { var $key = "my.oschina.net/penngo?#@"; var $iv = "01234567"; function encrypt($input){ $size = mcrypt_get_block_siz
php加密:3DES
php有封装好的加密算法,DES是其中之一,3DES表示三重DES加密算法 代码示例: 预定义了key,iv=key,(两者通过base64进行了编码) public function encrypt($value) { $td = mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_CBC, '');
Java和C#中3DES的加密与解密
最近在工作中遇到将Java环境的一个用户ID用表单形式传递给.net环境做校验,考虑到不能将用户ID作为明文传递,因此利用简单的3DES进行加密解密操作。 需要注意的就是: (1)两种环境下3DES加密解密的一致性问题:C#会对解密生成的byte在不满足长度16时,自动填充'/0'直至长度为16,因此在接收到Java端的加密数据后,我们要对生成的byte做处理把末尾的'\0'去掉。 (2)另
php 3des 加密类
下面是一个我经常用到的3des加密类: class STD3Des { private $key = ""; private $iv = ""; /** * 构造,传递二个已经进行base64_encode的KEY与IV * * @param string $key * @param string $iv */
php、java、android、ios通用的3des+base64加密方法
php服务器,java服务器,android,ios开发兼容的3des+base64加密解密。 直接在项目中拷贝代码作为工具类使用即可。方便快速开发加解密功能。 php  <?php class DES3 { var $key = "my.oschina.net/penngo?#@"; var $iv = "01234567"; function encrypt($input
php 3DES加密 总有一款适合你
/** * 进行3des ecb 模式加密 * * @param $message * @param string $key * @return string */ public function encode($message){ $message = $this-&amp;gt;pkcs5Pad($message, 8); if (strlen($message) % 8)...