php(openssl)与C#(VB.NET)加解密

本文探讨了在VB.NET中使用3DES加密的数据,在PHP中如何使用openssl进行解密的问题。主要难点在于编码的转换,特别是Unicode编码在C#和PHP之间的差异。解决方法是确保在PHP中使用UCS-2LE(Unicode小端字节序)进行解码,以匹配C#中Unicode编码的默认格式。此外,还提到了通过在密码前添加随机字符来实现每次加密结果不同的策略。
摘要由CSDN通过智能技术生成

vb.net中有个3DES的加解密示例,用其加密在php中不知如何解密,看了网上很多代码,主要还是编码的问题,将vb.net的代码转为C#的代码如下:

 using System;
 using System.Security.Cryptography;
 public sealed class My3Des
 {
        private TripleDESCryptoServiceProvider TripleDes = new TripleDESCryptoServiceProvider();
        //---指定密钥的哈希创建指定长度的字节数组
        private byte[] TruncateHash(string key, int length)
        {
            // byte[] functionReturnValue = 0;
            SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
            // Hash the key.
            byte[] keyBytes = System.Text.Encoding.Unicode.GetBytes(key);
            byte[] hash = sha1.ComputeHash(keyBytes);

            // Truncate or pad the hash.
             Array.Resize(ref hash,length);
            return hash;
        }

        //添加用来初始化 3DES 加密服务提供程序的构造函数。
        //key 参数控制 EncryptData 和 DecryptData 方法。
        public My3Des(string key)
        {
 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值