请问DES加密算法中的这3个函数(获取密钥函数,加密函数与解密函数)的含义是什么(附函数算法)哪位高手可以帮我解释每句代码的含义吗?十分感谢! // 创建Key public string GenerateKey()

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/08 16:40:27

请问DES加密算法中的这3个函数(获取密钥函数,加密函数与解密函数)的含义是什么(附函数算法)哪位高手可以帮我解释每句代码的含义吗?十分感谢! // 创建Key public string GenerateKey()
请问DES加密算法中的这3个函数(获取密钥函数,加密函数与解密函数)的含义是什么(附函数算法)
哪位高手可以帮我解释每句代码的含义吗?十分感谢!
// 创建Key
public string GenerateKey()
{
DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider) DESCryptoServiceProvider.Create();
return ASCIIEncoding.ASCII.GetString(desCrypto.Key);
}
///加密函数
public string DESEncrypt(string pToEncrypt, string sKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
foreach (byte b in ms.ToArray())
{
ret.AppendFormat("{0:X2}", b);
}
ret.ToString();
return ret.ToString();
}
///解密函数
public string DESDecrypt(string pToDecrypt, string sKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = new byte[pToDecrypt.Length / 2];
for (int x = 0; x < pToDecrypt.Length / 2; x++)
{
int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));
inputByteArray[x] = (byte)i;
}
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
return System.Text.Encoding.Default.GetString(ms.ToArray());
}

请问DES加密算法中的这3个函数(获取密钥函数,加密函数与解密函数)的含义是什么(附函数算法)哪位高手可以帮我解释每句代码的含义吗?十分感谢! // 创建Key public string GenerateKey()
///
/// DES密钥
///
private const string KEY_64 = "11111111";//注意了,是8个字符,64位
///
/// DES向量
///
private const string IV_64 = "11111111";
///
/// 加密DES
///
/// 需要加密的字符串
/// 加密后的字符串
public static string EncodeDES(string data)
{
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
int i = cryptoProvider.KeySize;
MemoryStream ms = new MemoryStream();
CryptoStream cst = new CryptoStream(ms,cryptoProvider.CreateEncryptor(byKey,byIV),CryptoStreamMode.Write);
StreamWriter sw = new StreamWriter(cst);
sw.Write(data);
sw.Flush();
cst.FlushFinalBlock();
sw.Flush();
return Convert.ToBase64String(ms.GetBuffer(),0,(int)ms.Length);
}
///
/// 解密DES
///
/// 需要解密的字符串
/// 解密后的字符串
public static string DecodeDES(string data)
{
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
byte[] byEnc;
try
{
byEnc = Convert.FromBase64String(data);
}
catch
{
return null;
}
DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream(byEnc);
CryptoStream cst = new CryptoStream(ms,cryptoProvider.CreateDecryptor(byKey,byIV),CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cst);
return sr.ReadToEnd();
}

请问DES加密算法中的这3个函数(获取密钥函数,加密函数与解密函数)的含义是什么(附函数算法)哪位高手可以帮我解释每句代码的含义吗?十分感谢! // 创建Key public string GenerateKey() TripleDES的加密算法是DES的几倍? AES和DES加密算法的相同之处 DES 加密算法是怎样的一种算法?要通俗解释.. DES加密算法C语言实现用C语言实现DES加密与解密 DES算法的几个选择题1.DES是一种 加密算法.(A古典的,B传统的,C现代的)2.DES的算法是 的.(A保守的,B公开的)3.DES的密钥是 的.(A保守的,B公开的)4.DES算法中使用了 技术.(A乱码填充,B 加密算法:AES DES RC4 Rabbit TripleDes 那个更好?它们分加密算法:AES DES RC4 Rabbit TripleDes 那个更好?它们分别被用在那些方面呢? 下列属于非对称加密算法的是A.RSA B.TWOFISH C.DES D.IDEA 对称加密算法中,des算法的密钥长度是多少,采用什么进行加密 请问如何编写一个函数max,它带有3个int型参数,返回这三个数的最大值.(接上面)在main函数中接收3个数的键盘输入,调用max函数获取这三个数的最大值.( 非常不好意思哦,呵呵,我不是很懂) 法语 请问avec des 什么是安全单向散列函数?安全单向散列函数是个什么性质的东西?是一个加密算法吗? aes des rsa的加密算法有什么区别?通俗简单讲,就是各个的优点和缺点,不要太深奥 des加密算法(c/c++)要完整程序,用C或C++实现.包括所必须的头文件及主体部分,复制粘贴直接能执行不要有错误.经测试有效才给分.看清楚要求再回答!楼下的我粘贴过去编译出来N多个错误,拜托各 关于DES加密算法说明中说64位明文,密文,密钥这个64位怎么确定第一位的比如明文是123456781=0000 0001.8=0000 1000加上后面7个数字一共是64位是从“1”的符号位算第一位还是“1”的数值位1算第一位 有些类可以获取parent,请问parent是什么概念.有些parent是通过构造函数传递的参数赋值的,那请问parent一定是此类的父类的对象吗,它是怎么实现这一机制.parent和类中的成员变量(构造时也可以 正则表达式匹配a标签中内容科学家1科学家2科学家2请问如何获取a标签中的内容【科学家1,科学家2,科学家3 】这几个内容呢,正则达式如何写 关于密码学的一些考试题目解答,1、在标准的DES的算法中,其分组的长度为()位 A 56 B64 C112 D1282、下面是费堆成加密算法是的是()A凯撒密码 B惟吉尼密码 CRSA D仿射密码3、在RSA中,已经两个