关于加密

davidtsui 2009-04-05 01:30:43
有人能简单地告诉我,什么叫密钥,什么叫初始化向量吗?
...全文
71 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

//C#中DES的加密算法的使用
//导入命名空间
using System.Security;
using System.Security.Cryptography;

//声明全局变量保存密钥和向量
public string Key;
public string Iv;
//定义DESCryptoServiceProvider对象
public DESCryptoServiceProvider DES;
/// <summary>
/// 加密事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.textBox1.Text))
{
DES = new DESCryptoServiceProvider();//实例化
DES.GenerateKey();//生成用于该算法的随即密钥
DES.GenerateIV();//生成用于该算法的随机向量
//此处存储密钥和向量
this.Key = Convert.ToBase64String(DES.Key);
this.Iv = Convert.ToBase64String(DES.IV);
//密钥和向量输出到界面
this.textBox2.Text = Convert.ToBase64String(DES.Key);
this.textBox3.Text = Convert.ToBase64String(DES.IV);
//格式化明文转化为byte数组,格式化不一定这样些但是加密和解密要一致
byte[] data = UnicodeEncoding.Unicode.GetBytes(this.textBox1.Text);
//加密
byte[] EncData = DES.CreateEncryptor().TransformFinalBlock(data, 0, data.Length);
//输出密文到界面
this.textBox4.Text = Convert.ToBase64String(EncData);
}
else
{
MessageBox.Show("没有需要加密的明文!");
}
}


/// <summary>
/// 解密事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
if (this.Key ==this.textBox2.Text && this.Iv == this.textBox3.Text)
{
DES=new DESCryptoServiceProvider();
//与TripleDES(3DES)不同此处需要密钥和向量
DES.Key =Convert.FromBase64String(this.Key);
DES.IV = Convert.FromBase64String(this.Iv);
byte[] data = Convert.FromBase64String(this.textBox4.Text);
byte[] DecData = DES.CreateDecryptor().TransformFinalBlock(data, 0, data.Length);
this.textBox5.Text = UnicodeEncoding.Unicode.GetString(DecData);
}
else
{
MessageBox.Show("密钥发生改变无法解密!");
}
}
春天的气息 2009-04-05
  • 打赏
  • 举报
回复
可以看看加密解密方面的。不难理解的,C#有这方面的类,可以直接使用。
热学沸腾56 2009-04-05
  • 打赏
  • 举报
回复
学习了。。
wuyq11 2009-04-05
  • 打赏
  • 举报
回复
密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的数据. 密钥分为两种:对称密钥与非对称密钥
EveryCase 2009-04-05
  • 打赏
  • 举报
回复
顶~~~~~~~~~~~~~~~
waitwarwolf 2009-04-05
  • 打赏
  • 举报
回复
密钥:密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的数据.
初始化向量(IV),也叫做初始化值 (Initialization Value),是一个在密码系统中的术语。IV是一个位块,其结合了在一些块密码的任一个数据的第一块。在一些密码系统中,它是任意的和被与密码一起发送,有些,例如一个磁盘密码子系统,它是基于一些信息的,例如这个文件的i节点,它没有被输入到密码中。

111,126

社区成员

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

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

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