哪个rc4 的密钥可以使s在夏普1808s载体初始化化后不变

君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
信息安全技术基础(张浩军)第4章.ppt
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口信息安全原理与实践--对称密钥加密ppt下载_PPTOKPython_RC4Encode - 简书
Python_RC4Encode
Python RC4加密
RC4是美国密码学家罗纳德·李维斯特(Ron Rivest)在1987年设计的密钥长度可变的流加密算法。它加解密使用相同的密钥,因此也属于对称加密算法。RC4是有线等效加密(WEP)中采用的加密算法,也曾经是TLS可采用的算法之一。由于RC4算法存在弱点,RFC 7465 规定禁止在TLS中使用RC4加密算法。
RC4由伪随机数生成器和异或运算组成。RC4的密钥长度可变,范围是[1,255]。RC4一个字节一个字节地加解密。给定一个密钥,伪随机数生成器接受密钥并产生一个S盒。S盒用来加密数据,而且在加密过程中S盒会变化。
由于异或运算的对合性,RC4加密解密使用同一套算法。from
#coding=utf-8
import sys,os,hashlib,time,base64
class rc4:
def __init__(self,public_key = None):
self.public_key = public_key or 'none_public_key'
self.public_key = hashlib.md5(public_key).hexdigest()
def encode(self,string):
self.result = ''
self.docrypt(string)
self.result = base64.b32encode(self.result)
return self.result
def decode(self,string):
self.result = ''
string = base64.b32decode(string)
self.docrypt(string)
return self.result
def docrypt(self,string):
string_lenth = len(string)
result = ''
box = list(range(256))
randkey = []
key_lenth = len(self.public_key)
for i in xrange(255):
randkey.append(ord(self.public_key[i % key_lenth]))
for i in xrange(255):
j = (j + box[i] + randkey[i]) % 256
tmp = box[i]
box[i] = box[j]
box[j] = tmp
for i in xrange(string_lenth):
a = (a + 1) % 256
j = (j + box[a]) % 256
tmp = box[a]
box[a] = box[j]
box[j] = tmp
self.result += chr(ord(string[i]) ^ (box[(box[a] + box[j]) % 256]))
import rc4
_rc4 = rc4.rc4('iamthekey')
temp = _rc4.encode('HelloWorldTTT')
print temp
print _rc4.decode(temp)
2AGVR5TFYCTFDU3CTWIKY===HelloWorldTTTRC4加密算法:C#版本_算法_编程通用_或代码
| 文章 >> 编程通用 >> 算法
RC4加密算法:C#版本
简介数据的安全性已成为计算机科学的经常性话题。我认为,在其职业生涯的所有软件开发人员研究主题。我始终保持约,通报情况,我申请到多个应用程序的客户问我发展各类算法。我经常使用的算法是RC4。 RC4是一种流加密对称密钥算法。它是由Ronald Rivest在1987年,作为一个由RSA Data Security的商业秘密保存。 日,RC4算法被匿名发布在互联网上的Cyperpunks??锟anonymous邮件转发器??列表。 RC4使用可变长度的密钥,从1到256字节初始化一个256字节的状态表。状态表用于随后生成伪随机字节,然后生成一个伪随机流,这是异密文与明文。在状态表中的每个元素至少交换一次。 RC4密钥往往是限制在40位,由于出口限制,但有时使用128位的密钥。它使用1和2048位的密钥的能力。 RC4是使用在许多商业软件如Lotus Notes和Oracle安全SQL包。这也是蜂窝规范的一部分。我锟v个人注意到,没有人提供RC4算法的C#版本,所以我锟v个人做到了。算法描述 RC4算法的工作分两个阶段进行:关键设置加密。密钥设置密钥设置了该算法的第一和最困难的阶段。在一个N位键的设置(N为您的密钥长度),加密密钥是用来生成一个加密的变量,使用两个阵列,状态和关键,混合操作的N -数量。包括交换字节,模操作和其他公式,这些混合操作。,在附加的项目,你可以看到我怎么做RC4Engine类EncryptionKey设置属性。Chiphering阶段一旦加密的变量是从生产的关键设置,进入加密阶段,它是异与纯文本邮件,创建一个加密的消息。 XOR是比较两个二进制位的逻辑运算。如果位是不同的,结果是1。如果位是相同的,其结果是0。一旦接收端收到加密的消息,他通过异或解密加密的消息具有相同的加密变量。,在附加的项目,你可以看到我怎么做RC4Engine类:加密:encript方法解密:decript方法我想谈谈cripted消息来解密,使用的加密阶段中使用的算法。应用程序是如何工作的呢?前端布局如下: {S0}
您可以:在清除文本框,输入一个具有最大32767个字符的文本单击"加密"按钮,出现后,填补了清除文本框。为了验证加密的文本框,你可以点击"解密"按钮,出现在加密过程结束。
你也可以修改加密密钥,但确保用于加密和解密的文本。
关于作者:
中国我是一名编程爱好者,谢谢为我们提供一个学习和分享的平台。有什么问题。可以就本内容回复,我看到时。会尽量回复的。
评论会员:
时间:我是用在我的应用程序自年RC4算法
它做工精细。NET 1.1
但时,我有我的应用程序转换到。NET 3.5中,它是有问题的值进行解密。
我已调试代码,并观察到,这是无法解密的第二个字符始终。
例如如果我有加密的"abcde"时,然后同时解密的加密值,这是给所有coorect值对A,C,D,E,但不是"B"。
这是返回一些值,如"A锟斤拷CDE的。
任何有关此想法?
请帮助...!!!{ BR}评论会员:
时间:这是伟大的。但我怎么能得到这个目前有一个项目需要这种。但我不能似乎得到这个。有人PLS告诉我,谢谢。
如果可以通过电子邮件寄给我会更快评论会员:
时间:您好,
我是一个商业软件公司开发工作。我在这篇文章中找到的源代码适应感兴趣。你能告诉我,如果有,我必须遵守的许可证或版权方面?
非常感谢您的帮助。
威尔逊J 评论会员:
时间:。随意做Ciao的,西蒙娜评论会员:
时间:这里是另一个实现:
using System.Collections.G
using System.L
using System.T
using System.IO;
namespace RC4
public class RC4
private byte[] K;
private byte[] S;
public byte[] State
get { return this.S; }
public RC4(string key)
this.K = StringToByteArray(key);
public RC4(byte[] key)
public void KeySchedule()
this.S = new byte[this.K.Length];
for (int i = 0; i & this.S.L i++)
this.S[i] = (byte)i;
int j = 0;
for (int i = 0; i & this.S.L i++)
j = (j + this.K[i % K.Length] + this.S[i]) % this.S.L
this.Swap(i, j);
private int i = 0;
private int j = 0;
public byte Loop()
i = (i + 1) % this.S.L
j = (j + S[i]) % this.S.L
System.Windows.Forms.MessageBox.Show(j + "");
this.Swap(i, j);
byte z = this.S[(this.S[i] + this.S[j]) % this.S.Length];
public byte Encrypt(byte input)
return (byte)(this.Loop() ^ input);
private void Swap(int i, int j)
byte tmp = this.S[i];
this.S[i] = this.S[j];
this.S[j] =
private static byte[] StringToByteArray(string input)
ASCIIEncoding encoding = new ASCIIEncoding();
return encoding.GetBytes(input);
} 评论会员:
时间:非常有趣。 你可以发布一个小的snipet代码如何使用它,请
提前感谢!Cuchuk谢尔盖评论会员:
时间:我需要在RSA算法的密钥生成,加密和解密的C#代码 Cuchuk谢尔盖评论会员:
时间://原从SF的GNU较小的一般公共许可下{BR}//http://sourceforge.net/projects/rc4dotnet//imgsrc=/upimg/_09_39_02_1.gif简化和固​​定使用系统的文件使用System.IO;使用系统。文本;命名空间Encryption.LESR_RC4_Geffe{公共接口ICoder{NBSP;-;无效加密(密码字符串,字符串文件,字符串targetFile);无效解密(字符串密码,字符串文件,字符串targetFile)}公共类RC4:ICoder{{BR}私人constint的EncodingCode=1251-;公共无效的加密(密码字符串,字符串文件,字符串targetFile){-;byte[]的内容加密(密码,File.ReadAllBytes(文件))=-;File.WriteAllBytes(targetFile,内容)}公共无效解密(字符串密码,字符串文件,字符串targetFile)NBSP{byte[]的内容=加密(密码,File.ReadAllBytes(文件));NBSP;-;File.WriteAllBytes(targetFile,内容);NBSP;}私人INTgetAsciiCode(CHAR字符){回报(INT)(Encoding.GetEncoding(EncodingCode)的GetBytes(字符")[0])}私人字符fromAsciiCode(INTasciiCode){NBSP;字节[]字节=新字节[1];字节[0]=(字节)asciiC{BR}返回Encoding.GetEncoding(EncodingCode)的GetString(字节)[0];NBSP;-;}私人字符串hexToBinary(packtype字符串,字符串datastring)NBSP-;{诠释我,J,DATALENGTH字节[]字节;NBSP;CHAR[]六角;字符串TMP;NBSP;DATALENGTH=datastring.LNBSP;-;packsize=(DATALENGTH/2)(2DATALENGTH%);NBSP字节=新字节packsize]十六进制=新的char[2];{BR}(I=J=0;我LT;D​​ATALENGTH;I=2)-;{十六进制[0]=datastring[I]NBSP;如果(DATALENGTH-我==1)NBSP十六进制;[1]='0';-;ELSE{BR}十六进制[1]=datastring[我1]TMP=新的字符串(十六进制,0,2);BR}尝试{字节[J]=byte.Parse(TMP,System.GlobalizationNumberStyles.HexNumber);}赶上{}/*眉开眼笑*/}NBSP;-;返回Encoding.GetEncoding(EncodingCode)的GetString(字节);}-;binaryToHex公共字符串(字符串bindata){-;诠释我;字节[]字节=Encoding.GetEncoding(EncodingCode)的GetBytes(bindata);字符串十六进制串="";NBSP;-;为(i=0;我LT;bytes.LI)NBSP;-;{NBSP十六进制串=字节[我]的ToString("X2");}-;返回十六进制串}{BR}专用字节[]加密(字符串中的密码,byte[]数据){一个我,J,K,TMP,pwd_length,DATA_LENGTH;-;INT[]键,箱;字节[]cipheredTextNBSP,密码=hexToBinary("H*",密码);//有效的输入,请!pwd_length=password.L-;DATA_LENGTH=data.LNBSP;关键=新的int[256];盒=新的int[256]NBSP-;cipheredText=新的字节[data.Length];NBSPNBSP;-;为(i=0;我LT;256;I)NBSP-;{关键[I]=getAsciiCode(密码[我pwd_length%])盒[I]=I{BR}}NBSP(J=I=0;我LT;256;I){NBSP-;J=(j框[I]键,[I])%256;-;TMP=框[I]-;盒[I]=框[J];NBSP;-;盒[J]=TMP;-;NBSP}(一个=J=I=0;我LT;D​​ATA_LENGTH;I){BR}{NBSP-;A=(1)256%;NBSPJ=(J框[])256%;TMP=框[]框[]=框[J]框[J]=TMPNBSP-;K=盒((盒[]框[J])256%)]cipheredText[I]=(字节)(数据[I]^K);}-;返回cipheredT}}} ROAA穆罕默德评论会员:
时间:更简单-所有的语言符号命名空间Encryption.LESR_RC4_Geffe{公共类RC4:ICoderNBSP;-;{constint的EncodingCode=1251NBSP公共无效的加密(密码字符串,字符串文件,字符串targetFile)-;{字节[]passwordToPassSystem.Text.Encoding.Default.GetBytes(密码);byte[]的内容=加密(passwordToPass,File.ReadAllBytes(文件));NBSP;-;File.WriteAllBytes(targetFile,内容)}NBSP公共无效解密(密码字符串,字符串文件,字符串targetFile)-;{加密(密码,文件,targetFile);-;}专用字节加密(字节[]密码,字节[数据){INTA,我,J,K,TMP,pwd_length,DATA_LENGTH;INT[]键,S盒;{BR}byte[]的cipheredDNBSP-;pwd_length=password.LDATA_LENGTH=数据。长度;键=新的int[256]-;S盒=新的int[256];cipheredData[data.Length];NBSP为(i=0;我LT=新的字节;256;I){NBSP-;关键[I]=密码[我pwd_length%];-;S盒[I]=I}(J=I=0;我LT;256;I)-;{-;J=(jS盒[我]键,[I])256%;NBSP-;-;TMP=S盒[I]NBSP;S盒[I]=S盒[J];S盒[J]=TMP;}-;为(a=J=I=0;我LT;D​​ATA_LENGTH;I){A=(1)%256;-;J=(jS盒[A])256%;NBSP-;-;//交换TMP=S盒[A];S盒[]=S盒[J]S盒[J]=TMPNBSP-;-;NBSP,K=S盒((S盒[A]S盒[J])256%)]NBSP;-;cipheredData[I]=(字节)(数据[I]^K);NBSP;-;}返回cipheredDNBSP;-;}}} Veener评论会员:
时间:感谢西蒙这篇文章,但其实我评论关于算法的实现,您使用的是"MOD255",而我读过的算法之前说,使用"MOD256"在输出完全不同,所以你有你做任何解释WT这是一个错误?, devoice评论会员:
时间:我同意,我认为应RC4Engine.cs266行:公共静态长m_nBoxLen=256; user_20评论会员:
时间:您好.....我`M,现在在我的大学最后一年的项目.....和我所要做的加密和解密通过PIC微控制器....任何人都可以帮助我如何,我可以做我的项目或任何引用或教程.....我该怎么办,在C语言编程.......{S2} blahblah_mskp评论会员:
时间:您好,此代码似乎不正确的加密/解密的Unicode字符(中文/日文)。是否有任何需要修改,​​以使这项工作吗?预先感谢。西蒙娜Spagna酒店评论会员:
时间:该算法不会产生正确的输出。不应该使用。 Veener,而是另一个NET库http://rc4dotnet.devhome.org |??你能解释一下我为什么由于事先评论会员:
时间:。更改这行代码,我认为这将
静态众长m_nBoxLen = 256; 评论会员:
时间:感谢的人!
这正是我一直在寻找你的榜样。一个小而简单(和工作),一个小而简单的工具,需要隐藏在其设置文件的密码加密类。对于初学者,我发现使用微软的加密API的所有其他例子太复杂。你真的使我的一天!
干杯基督教评论会员:
时间:我不能encript以下frase
Estos法比奥AY悲阙VES ahora坎波斯的索莱达mustio科利亚fueron otrora
进行加密时,它失去消息的一部分,当你破译你只
Estos法比奥AY
奥雷斯特斯评论会员:
时间: AntoninoLuis写道:当你加密它失去消息的一部分,当你破译你只有
这是一个错误的接口:它不会显示所有加密的短语。加密类的正常工作:如果你想测试它,你要调试项目,并设置断点三百一十五分之三百十四frmFrontend.cs行。 HEPS。
评论会员:
时间:,我不知道有关加密的,但我发现它真的很容易你的类添加到我的德尔福NET项目和一些数据进行加密。。良好的工作。谢谢 评论会员:
时间:更快的RSA,ECC,DES或RC4?我知道的对称ENC。所以我觉得它的RC4是更快,但要仔细检查。
的RC4在CBC或ECB模式使用?
RC4是我们作为一个公共密钥算法?
评论会员:
时间:这是一个非常愚蠢的问题。谷歌互联网,然后才提出这样的答案。 {中六}
ROFLOLMFAO 评论会员:
时间:我想代码encript密码MAILTO:
&桌面&网页开发&移动开发&数据库&多媒体&编程语言&平台,框架和库&编程通用&图形/设计&开发周期&一般阅读&第三方产品&作者资源&其他
快速解答标签
价值作最多

我要回帖

更多关于 taxer rtfs 密钥 的文章

 

随机推荐