本篇文章主要介绍了"c# rc4算法,加密解密类",主要涉及到代码编写方面的内容,对于C#jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下:
rc4算法,原理,以密匙生成256位的密匙流,然后以车轮式滚过源数据异或加密。 1/* 2 * 由SharpDevelop创建。3 * 用户: YISH4 ...
rc4算法,原理,以密匙生成256位的密匙流,然后以车轮式滚过源数据异或加密。
1/* 2 * 由SharpDevelop创建。
3 * 用户: YISH
4 * 日期: 04/04/2015
5 * 时间: 03:01
6 *
7 * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件
8*/ 9using System;
10 11namespace Libraries
12{
13/// 14/// Description of CryptoGraphy.
15/// 16publicclass RC4Crypt:IDisposable{
17byte[] S;
18byte[] T;
19byte[] K;
20byte[] k;
21public RC4Crypt() { }
22public RC4Crypt(byte[] key){
23this.K=key;
24 }
25publicbyte[] Key
26 {
27get 28 {
29return K;
30 }
31set 32 {
33 K = value;
34 }
35 }
36//初始化状态向量S和临时向量T,供keyStream方法调用 37void initial(){
38if (S == null || T == null)
39 {
40 S = newbyte[256];
41 T = newbyte[256];
42 }
43for (int i = 0; i < 256; ++i) {
44 S[i]=(byte)i;
45 T[i] = K[i % K.Length];
46 }
47 }
48//初始排列状态向量S,供keyStream方法调用 49void ranges(){
50int j=0;
51for (int i = 0; i < 256; ++i) {
52 j=(j+S[i]+T[i])&0xff;
53 S[i]=(byte)((S[i]+S[j])&0xff);
54 S[j]=(byte)((S[i]-S[j])&0xff);
55 S[i]=(byte)((S[i]-S[j])&0xff);
56 }
57 }
58//生成密钥流
59//len:明文为len个字节 60void keyStream(int len){
61 initial();
62 ranges();
63int i=0,j=0,t=0;
64 k=newbyte[len];
65for (int r = 0; r < len; r++) {
66 i=(i+1)&0xff;
67 j=(j+S[i])&0xff;
68 69 S[i]=(byte)((S[i]+S[j])&0xff);
70 S[j]=(byte)((S[i]-S[j])&0xff);
71 S[i]=(byte)((S[i]-S[j])&0xff);
72 73 t=(S[i]+S[j])&0xff;
74 k[r]=S[t];
75 }
76 }
77 78publicbyte[] EncryptByte(byte[] data){
79//生产密匙流 80 keyStream(data.Length);
81for (int i = 0; i < data.Length; i++) {
82 k[i]=(byte)(data[i]^k[i]);
83 }
84return k;
85 }
86 87publicbyte[] DecryptByte(byte[] data){
88return EncryptByte(data);
89 }
90 91//是否回收完毕 92bool _disposed;
93publicvoid Dispose()
94 {
95 Dispose(true);
96 GC.SuppressFinalize(this);
97 }
98 ~RC4Crypt()
99 {
100 Dispose(false);
101 }
102//这里的参数表示示是否需要释放那些实现IDisposable接口的托管对象103protectedvirtualvoid Dispose(bool disposing)
104 {
105if (_disposed) return;//如果已经被回收,就中断执行106if (disposing)
107 {
108//TODO:释放那些实现IDisposable接口的托管对象109110 }
111//TODO:释放非托管资源,设置对象为null112 S = null;
113 T = null;
114 K = null;
115 k = null;
116 _disposed = true;
117 }
118 }
119 }
以上就介绍了c# rc4算法,加密解密类,包括了代码编写方面的内容,希望对C#jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播有兴趣的朋友有所帮助。
本文网址链接:http://www.codes51.com/article/detail_248570.html