第8章-WinForm程序设计与实践-廉龙颖-清华大学出版社

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• (3)在窗体设计区中右击窗体Form1和每一 个控件,设置窗体和控件的相关属性。表81列出了窗体及控件属性。
属性值 字符串加密解密 明文: txtPlaintext 密文: txtCiphertext 解密后明文: txtDecryptedText btnEncrypt 加密 btnDecrypt 解密
体常(的记5)K为E解,C,=密EE算(确法M定,D出:KE一)它个或是具C一=体E族的K由E(加C到M密)M函的。数解,密把变M换加,密对成于密每文一C,个通确
加密密钥Ke
定记一K(D)个的为E ,有KMKED=(,有意D(MDM义)确=CD的,)定(密K。出CD) ,码一或 K系个D)M统具==应体DD当(的KD满(E解(足C密)M:,函。对K数E于),每,把一K密D)确文,定C恢或的复记密为为钥MMK,==(通D K常KED ,
8.2 加密与解密实现方法
(6)封装使用RSA算法进行加密的方法 RSAEncrypt (),程序代码如下。
private string RSAEncrypt(string plaintext) {
//从密钥容器中取出密钥提供器 RSACryptoServiceProvider rsa =
GetRSAProviderFromContainer("rsaKey"); //将要进行加密的字符串转换成字符
{ //自定义密钥容器
CspParameters cp = new CspParameters(); //指定密钥容器名称
cp.KeyContainerName = containerName; //定义RSA加密对象 RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cp); return rsa; }
WINFORM程序设计与实践
第8章 加密与解密
学习目标:
• 了解对称加密与非对称加密概念 • 了解加密与解密相关的类 • 掌握字符串的加密和解密技术 • 掌握一般文件的加密与解密技术
8.1 加密与解密概述
现代密码系统(一般简称为密码体制)一般由五个部分组成:
(M明N]1文。)可明明被文文传用空送M间(或M消存:息储它),是或无全P论体(明在明文哪文的种)集情表合况示,,,记M指它作待一M加=般[密M是1,的比M消2特,息流…。,,
8.2 加密与解密实现方法
(4)引入命名空间,程序代码如下。
using System.Security.Cryptography;
(5)封装定义密钥容器和RSA加密对象的 方 法 GetRSAProviderFromContainer() , 程 序 代码如下。
private static RSACryptoServiceProvider GetRSAProviderFromContainer(string containerName)
数组 byte[] bytes =源自Encoding.Unicode.GetBytes(plaintext); //将数据进行加密
byte[] ciphertextBytes = rsa.Encrypt(bytes, true);
//将加密后的字符数组转换成字符串 string ciphertext = Convert.ToBase64String(ciphertextBytes); return ciphertext; }
(C(N]23。))明密密文文钥加空 空密间 间后CK: :的它它形是是式全全为体体密密密文文钥。的的集集合合,。记加为密和C=解[C密1,操C2作,在…密,
钥的控制下进行。密钥空间K通常由加密密钥和解密密钥组成,
明文P
加密 E
即(K4=)(加K密E ,算K法D)E:。它是一族由M到C的加密变换,对于每一个具
密文C
解密 D
明文P
解密密钥Kd
8.1.1 非对称加密
• .NET Framework提供以下4个实现非对称 加密算法的类。
• (1)DSACryptoServiceProvider类,提 供DSA算法的加密实现。
• (2)RSACryptoServiceProvider类,提 供RSA算法的加密实现。
提供程序进行封装。 • (6)HMACSHA1类,封装了从SHA1构造的一种哈希算法,被用作
基于哈希的消息验证代码。
加密过程
密钥
密文
解密过程
明文
8.2 加密与解密实现方法
• 8.2.1 字符串的加密与解密
窗体和控件
属性
Form1
Text
• 【例8-1】利用非对称加密算法实现加密和 label1
Text
• (3)ECDiffieHellmanCng类,提供椭圆 曲线ECDH算法的下一代加密技术CNG的实 现。
• (4)ECDsaCng类,提供椭圆曲线数字签 名算法ECDSA的下一代加密技术CNG实现。
公钥
私钥
明文
加密过程
密文
解密过程
明文
8.1.2 对称加密
• .NET Framework提供以下6个实现对称加密算法的类。 • (1)DESCryptoServiceProvider类,定义访问数据加密标准DES
解密字符串。
textBox1 label2
Name Text
textBox2
Name
• 【操作步骤】
label3 textBox3
Text Name
• (1)启动VS,新建一个Windows窗体应用程 button1
Name Text
序StringEncrypt。
button2
Name Text
• (2)双击Form1.cs,切换到设计视图,从 工具栏中拖拽3个Label控件,3个TextBox控 件和2个Button控件到窗体设计区,并调整 窗体和控件大小进行布局。
算法的加密服务提供程序进行封装。 • (2)TripleDESCryptoServiceProvider类,对采用TripleDES算
法(即3DES)的加密服务提供程序进行封装。 • (3)RijndaelManaged类,提供访问Rijndael算法的托管版本。 明文 • (4)AesManaged类,提供高级加密标准AES对称算法的托管实现。 • (5)RC2CryptoServiceProvider类,对采用RC2算法的加密服务
相关文档
最新文档