C#实现DES加密算法与DES解密代码

在七十的初期
【菜科解读】
在七十的初期, 随着计算机之间的通信发展, 需要有一种标准密码算法为了限制不同算法的激增使他们之间不能互相对话。
为解决这个问题, 美国国家安全局(N.S.A ) 进行招标。
I.B.M 公司研发了一种算法, 称为:Lucifer。
经过几年的研讨和修改, 这种算法, 成为了今天的D.E.S,1976 年11月23 日, 终于被美国国家安全局采用。
/// /// DES加密与解密 /// publicclass DESEncrypt { #region DES加密 /// /// 使用默认密钥加密 /// ///
/// publicstaticstring Encrypt(string strText) { return Encrypt(strText, "TSF"); } /// /// 使用给定密钥加密 /// ///
///
密钥 /// publicstaticstring Encrypt(string strText, string sKey) { DESCryptoServiceProvider des =new DESCryptoServiceProvider(); byte[] inputByteArray = Encoding.Default.GetBytes(strText); des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); System.IO.MemoryStream ms =new System.IO.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); } return ret.ToString(); } #endregion #region DES解密 /// /// 使用默认密钥解密 /// ///
/// publicstaticstring Decrypt(string strText) { return Decrypt(strText, "TSF"); } /// /// 使用给定密钥解密 /// ///
///
/// publicstaticstring Decrypt(string strText, string sKey) { DESCryptoServiceProvider des =new DESCryptoServiceProvider(); int len = strText.Length /2; byte[] inputByteArray =newbyte[len]; int x, i; for (x =0; x len; x++) { i = Convert.ToInt32(strText.Substring(x *2, 2), 16); inputByteArray[x] = (byte)i; } des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8)); System.IO.MemoryStream ms =new System.IO.MemoryStream(); CryptoStream cs =new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); return Encoding.Default.GetString(ms.ToArray()); } #endregion }D.E.S 是分块加密的,将明文分割成 64 BITS 的块, 然后他们一个个接起来 。
他使用56位密钥对64位的数据块进行加密,并对64bits的数据块进行16轮编码。
和每轮编码时,一个48bits的“每轮”密钥值由56bits的完整密钥得出来。
DES用软件进行解码需要用非常长时间,而用硬件解码速度非常快,1977年,人们估计要耗资两千万美元才能建成一个专门计算机用于DES的解密,而且需要12个小时的破解才能得到结果。
所以,当时DES被认为是一种十分强壮的加密方法。
但今天, 只需 二十万美圆就能制造一台破译DES的特别的计算机,所以目前 DES 对需求“强壮”加密的场合已不再适用了。
实现,DES,加密,算法,与,解密,代码,DES,data,
变性人的变性手术是实现的?探秘变性细节
中国人的传统思想曾经是“身体发肤受之父母 ”云云诸如之类,上天让你当个女的你却想自己变男的? 然而随着时代的变迁,人们思想的解放,有了例如“建国之后动物不许成精”等骇人听闻的规定出现【滚】,“天气不错我变个性”这种事件,在我们的世界里就开始时有发生了...【大雾】 这位小伙子和女友喜笑颜开,但是谁能知道,几个月前,他还是个女儿身。
所谓“存在”即有“合理性”,既然有需求科学就有可能帮你实现似乎已经成为生存在21世纪的big surprise之一。
比如我们金姐,变性之后不仅能组建家庭,快乐的生活,事业上也更加大放异彩,比起男儿身的“她”现在的金星真是不知道好看了多少倍啊 不过话说回来,想彻底的变性,归根结底还是要做【变性手术】的。
对于变性手术,你可能和大多数人一样只闻其名却并不知道如何具体实施。
是的,越神秘越禁忌的话题,人们就越想刨根问底,那今天就带你一探究竟吧! ok,在此之前我们必须了解一个重要的知识点【划重点!敲黑板!】 什么样的人可以做变性手术? 渴望变性手术的人,即患有【性别认同障碍】的boys and girls。
「性别认同障碍」也叫「性别不安症」,简言之,即「男儿身女儿心」或者「女儿身男儿心」。
儿童一般从三岁开始就对性别有了懵懂的认知,并在成长过程中倾向于和同性别儿童一起玩耍,并表现该性别行为。
这种区别在青春发育期随着性器官和第二性征的发育进一步得到巩固,并获得异性性取向,这也就是我们中的绝大多数——生理和心理性别一致。
性别认知正常的饱饱【???】 错了,是这张 但人群是多样化的,总有一些人受到生理和心理性别不一致造成的痛苦。
他 / 她们渴望穿着异性的服饰,用异性的说话和行为方式,并能从中获得满足感。
如果你也有这样的需求,那么注意,你很有可能开启新世界的大门! 【性别认同障碍者】是都需要手术吗? 并不是! 性别认同障碍一般在儿童期就可以被发现,偷穿爸妈衣服、抹口红带束胸什么的,_对,说的就是你哈~ 有些家长会试图纠正其行为,事实上也有不少通过行为调整避免了性别割裂的案例,但绝大多数情况下这种割裂都是难以改变的。
【命运是无法抗拒的北鼻~】 真正的变性者,泰国新人演员Yoshi,超美 如果你已经渴望变性到不能自已,希望可以通过手术实现愿望时,一般医生也不会就这样随意下定论,而是会先建议你穿戴异性服饰、以异性社会角色生活一段时间。
此时一些假性的性别认同障碍会明显感到不适应,这类人群就不适合手术治疗,心理疏导会更加合适;反之,有些人会非常适应和满足于这种角色转换,那么手术就可以给他们带来帮助。
而这种改变服饰和行为模式的过渡期到底应该多长,还没有学术上的定论,实际操作上各地也千差万别。
Yoshin是男孩变女孩,1997年生