使用DES加密算法,VB6.0与C#的密文不一致

ss3idx 2010-07-04 04:53:55
使用DES加密算法

在VB6.0与C#下的加密后,密文不一致。

哪位大侠,能指点!
...全文
234 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lpxxn 2012-05-26
  • 打赏
  • 举报
回复
楼主你的问题解决了没!请指点呀,我这了正需要呀vb6 和c# des加密
pwrfume_lily_11 2011-04-23
  • 打赏
  • 举报
回复
楼主你问题解决了吗
段传涛 2010-07-04
  • 打赏
  • 举报
回复
vb 的 我不会
段传涛 2010-07-04
  • 打赏
  • 举报
回复
肯定不一样,
c#
/// <summary>
/// 进行DES加密。
/// </summary>
/// <param name="pToEncrypt">要加密的字符串。</param>
/// <param name="sKey">密钥,且必须为8位。</param>
/// <returns>以Base64格式返回的加密字符串。</returns>
public string Encrypt(string pToEncrypt, string sKey)
{
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
{
byte[] inputByteArray = Encoding.UTF8.GetBytes(pToEncrypt);
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
{
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
cs.Close();
}
string str = Convert.ToBase64String(ms.ToArray());
ms.Close();
return str;
}
}

/**/
/// <summary>
/// 进行DES解密。
/// </summary>
/// <param name="pToDecrypt">要解密的以Base64</param>
/// <param name="sKey">密钥,且必须为8位。</param>
/// <returns>已解密的字符串。</returns>
//public string Decrypt(string pToDecrypt, string sKey)
//{
// byte[] inputByteArray = Convert.FromBase64String(pToDecrypt);
// using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
// {
// des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
// des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
// System.IO.MemoryStream ms = new System.IO.MemoryStream();
// using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write))
// {
// cs.Write(inputByteArray, 0, inputByteArray.Length);
// cs.FlushFinalBlock();
// cs.Close();
// }
// string str = Encoding.UTF8.GetString(ms.ToArray());
// ms.Close();
// return str;
// }
//}
在证书的体系架构当中,包括了四个基本的组件,分别是密钥与加密算法,证书和证书颁发机构,证书申请、续订和吊销的通道,以及使用证书的应用程序 密钥与加密算法,就能够将明文信息,转化成为密文信息,以确保在网络当中传输时信息的安全,它主要分为两种类型,一种是对称加密算法,加密和解密时使用的都是同样的密钥和算法,一般用于加密数据,另外的一种是非对称加密算法,它包括了一对加密密钥,分别是公钥和私钥,如果公钥用于加密明文成为密文,那么私钥将用于解密密文到明文,公钥可以在网络当中进行传输,私钥不在网络当中传输 一般来说,如果两台计算机之间要传输数据,首先将由发送方计算机通过对称加密完成数据的加密过程,然后再由接收方计算机通过网络传输公钥给发送方,发送方再使用公钥加密对称加密的密钥,并且与加密的数据一起发送给接收方计算机,接收方计算机再使用私钥解密出对称加密的密钥,再使用密钥解密加密的数据,完成数据安全传输的过程 而反过来,如果接收方使用私钥加密一个文件,再通过网络将加密文件、公钥和明文一起发送给发送方,发送方使用公钥解密了文件,与一起接收的明文对比,如果相同,就能证明文件未进行修改,实现签名的功能 而证书,就是加密密钥和算法的载体,一张证书当中,包括了加密密钥,算法,签名等信息,并且对于证书申请、颁发、续订和吊销的整个生命周期,还包括了很多其它的一些属性,应用程序可以通过读取证书的这些信息,完成数据的加密解密,签名和身份验证等不同的应用场景 而证书颁发机构,将负责的证书的整个生命周期管理,证书颁发机构是一个层次化的体系结构,根证书颁发机构将只负责子证书颁发机构的证书颁发和吊销管理,子证书颁发机构将负责应用程序证书的申请请求和管理,根证书颁发机构可以放置在一个隔离的环境当中,进一步增强整个证书链的安全,而子证书颁发机构可以按照需求进行扩展,满足不同规模的应用要求 在我们的课程当中,将按照此最佳实践,完成证书服务当中,不同组件的安装和配置

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧