首页 > 编程语言 >C# 常用加密方式二种

C# 常用加密方式二种

时间:2023-04-03 11:07:14浏览次数:33  
标签:加密 C# 二种 算法 分组 512 MD4 MD5


一、MD5加密算法


MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。


1991年,Rivest开发出技术上更为趋近成熟的MD5算法。它在MD4的基础上增加了"安全-带子"(Safety-Belts)的概念。虽然MD5比MD4稍微慢一些,但却更为安全。这个算法很明显的由四个和MD4设计有少许不同的步骤组成。在MD5算法中,信息-摘要的大小和填充的必要条件与MD4完全相同。Den Boer和Bosselaers曾发现MD5算法中的假冲突(Pseudo-Collisions),但除此之外就没有其他被发现的加密后结果了。


Van Oorschot和Wiener曾经考虑过一个在散列中暴力搜寻冲突的函数(Brute-Force Hash Function),而且他们猜测一个被设计专门用来搜索MD5冲突的机器(这台机器在1994年的制造成本大约是一百万美元)可以平均每24天就找到一个冲突。但单从1991年到2001年这10年间,竟没有出现替代MD5算法的MD6或被叫做其他什么名字的新算法这一点,我们就可以看出这个瑕疵并没有太多的影响MD5的安全性。上面所有这些都不足以成为MD5的在实际应用中的问题。并且,由于MD5算法的使用不需要支付任何版权费用的,所以在一般的情况下(非绝密应用领域。但即便是应用在绝密领域内,MD5也不失为一种非常优秀的中间技术),MD5怎么都应该算得上是非常安全的了。


在一些初始化处理后,MD5以512位分组来处理输入文本,每一分组又划分为16个32位子分组。算法的输出由四个32位分组组成,将它们级联形成一个128位散列值。


首先填充消息使其长度恰好为一个比512位的倍数仅小64位的数。填充方法是附一个1在消息后面,后接所要求的多个0,然后在其后附上64位的消息长度(填充前)。这两步的作用是使消息长度恰好是512位的整数倍(算法的其余部分要求如此),同时确保不同的消息在填充后不相同。


四个32位变量初始化为:


A=0x01234567


B=0x89abcdef


C=0xfedcba98


D=0x76543210


它们称为链接变量(chaining variable)


接着进行算法的主循环,循环的次数是消息中512位消息分组的数目。


将上面四个变量复制到另外的变量中:A到a,B到b,C到c,D到d。


主循环有四轮(MD4只有三轮),每轮很相似。第一轮进行16次操作。每次操作对a,b,c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。再将所得结果向右环移一个不定的数,并加上a,b,c或d中之一。最后用该结果取代a,b,c或d中之一。



1、对一段信息生成信息摘要,该摘要对该信息具有唯一性,可以作为数字签名。


2、用于验证文件的有效性(是否有丢失或损坏的数据),


3、对用户密码的加密,


4、在哈希函数中计算散列值



   从上边的主要用途中我们看到,由于算法的某些不可逆特征,在加密应用上有较好的安全性。通过使用MD5加密算法,我们输入一个任意长度的字节串,都会生成一个128位的整数。所以根据这一点MD5被广泛的用作密码加密。下面我就像大家演示一下怎样进行密码加密。



二、RSA加密算法





参考文献:

[2]http://www.cr173.com/html/17773_1.html

[3]http://baike.baidu.com/link?url=7rA_x14yMdZow727g8DRMCWvHI6eRzUL0uA-hubxHo2koaZM7MIoyDflUdV780sh6jKGIXCd-hWKjA0GVm4fk-pyVbzFwC9m-koHGyvYDey




标签:加密,C#,二种,算法,分组,512,MD4,MD5
From: https://blog.51cto.com/u_15999672/6165722

相关文章

  • VS2017 未能正确加载“ReferenceManagerPackage”包
    MicrosoftVisualStudio未能正确加载“ReferenceManagerPackage”包。1.以管理员身份打开DeveloperCommandPromptforVS20172.定位到你的vs2017的安装目录我安装的是企业版就是E:\ProgramFiles(x86)\MicrosoftVisualStudio\2017\Enterprise\Common7\IDE\PublicAssemblies......
  • CA登录问题汇总
    情景:“/”应用程序中的服务器错误。检索COM类工厂中CLSID为{68210AC9-5DD1-45E1-AAC8-631FCB554570}的组件失败,原因是出现以下错误:80040154没有注册类(异常来自HRESULT:0x80040154(REGDB_E_CLASSNOTREG))。说明:执行当前Web请求期间,出现未经处理的异常。请检......
  • 面向chatgpt翻译:与google,baidu做对比
    先说结论:chatgpt完胜You翻译一下:ThechatbothassomeamazingcapabilitiesthatareveryclosetotheoriginalchatgptbutitdidinheritopenaiwoknesstoointhesensethatanycontroversialtopicisheavilyleaningtoaleftlibtardmindsetHopetofixthat......
  • Python 调用Matplotlib 读取txt、csv文件画图
    目录PythonMatplotlib读取txt、csv文件绘图使用方法PythonMatplotlib读取txt、csv文件绘图show_data.pyimportsysimportmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False#用来......
  • Microsoft.SqlServer.Management.SqlMgmt.SimpleJobSchedule”上的属性访问器“Schedu
    标题:MicrosoftSQLServerManagementStudio对象“Microsoft.SqlServer.Management.SqlMgmt.SimpleJobSchedule”上的属性访问器“ScheduleRecurrenceAndTimes”发生以下异常:“对象“Microsoft.SqlServer.Management.SqlMgmt.SimpleJobSchedule”上的属性访问器“StartTimeOfD......
  • Microsoft Visual Studio 企业应用开发高效编程
    有一个假设在大自然中人和动物们比赛,比谁跑的"快".其实想想也知道,我们绝对不可能拿第一,毕竟跑的比人快的动物多的去了,老虎,狮子,猎豹,就连素食的羚羊跑的也比我们快不少.人类之所以将自己凌驾于动物之上,一方面智商使然,另一方面我们利用我们的智慧创造了原本没有的东西"工具".......
  • CPBAY 推广探秘[原创]
    最近在研究产品搜索内的成熟网站,至于CPbay等类似的网站是否能称得上所谓第三代,我觉得所谓IT媒体记者的话倒不太权威,依我看法,现在还无所谓第三代。因为这个模式还是固有传统平面搜索结果加上些许过滤而已。IT记者也不过是人云亦云的采编报道工具。不足以有权威定论。据我所知,至少现......
  • C#额外管理进程
    1、额外打开进程关闭进程(放在程序打开或者关闭时比如aubdioftp服务)publicstaticvoidStartFtpPress(){stringpath=System.Environment.CurrentDirectory;stringfileName=path+"\\FtpAudio.exe";System.Diagnostics......
  • IIS6 MVC4 路由失效 无法访问
    大致找了网站上IIS6MVC4路由失效文章不少,对症下药的木有啊,折腾了我半个下午。报错内容如下:==========================================“/”应用程序中的服务器错误。无法找到资源。说明:HTTP404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂......
  • shardingsphere-jdbc
    shardingsphere-jdbc5.1.1版本<dependency><groupId>org.apache.shardingsphere</groupId><artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId><version>5.1.1</version&......