PLM之家PLMHome-工业软件与AI结合践行者

MD5加密方法介绍

[复制链接]

2018-12-5 10:28:35 2280 0

Araser 发表于 2018-12-5 10:28:35 |阅读模式

Araser 楼主

2018-12-5 10:28:35

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
MD5算法简单的来说就是把任意长度的字串变换成固定长度(通常是128位)的16进制串。RFC 1321定义了MD5算法。
7 S9 `- O& h4 ], `8 h& s5 _* ]+ eMD5的用途主要有:
0 N' j7 C( w2 ?  u6 L# _7 l一致性验证。比如我们从网上下载了某个文件,网站上一般会给出该文件的MD5值,我们下载下来后,可以利用工具计算出! l8 Z9 G7 x( ?9 C1 ]3 @
新的MD5值,与正确的MD5值进行对照,如果不一样,则可以断定该文件下载出错或被篡改了。0 B' _/ B5 [# q5 s3 j2 r
数字签名。可以用MD5算法对发布的程序或发布的消息生成MD5值作为签名等。- R4 `, ~; A" \' ^( H6 w
密码存储。在传输过程中或存储过程中,直接用明文的密码都是很危险的。可以在传输之前先用MD5加密,存储也不用存储1 ?% T; O, N. p  n9 J- E# z0 D) R
明文,可以直接存储MD5值。在验证时,先把输入的密码转换成MD5值再与存储值进行对比。
对于密码存储,Asp.net的实现方法为:

' E* S; {& b2 Q1 l
[mw_shl_code=csharp,true]protected void Page_Load(object sender, EventArgs e)/ ]- ]4 z% G/ {9 J! _3 E% D) q
        {
5 s0 q* R) j0 X  l; p            string plainPassword = "innovator";
$ T) H) G2 Y& D- u
4 f' ^. M7 {$ M) Q            System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
3 W4 i& V2 s5 F) J% y7 l4 P            System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();* Z1 X- e( S4 ^# u
            byte[] data = ascii.GetBytes(plainPassword);/ W! j. P6 D: A  a8 r& _2 }- o' Z
            byte[] result = md5.ComputeHash(data);. g: o$ ]4 m1 \; F: Y
            // Convert the MD5 result to Hexadecimal string5 R" n& ^( c2 R+ E; o

6 T; \5 w( \- U5 M4 E            string MD5Password = BinaryToHex(result);
2 E1 y& n/ e" t' c            string aa = "";
9 k" A2 ~4 m& P% w        }[/mw_shl_code]

, R5 C7 ~7 o* w' k6 {# Z
[mw_shl_code=csharp,true]private String BinaryToHex(byte[] BinaryArray)$ f3 p8 u, [- L3 d2 ~) F) E+ a
        {
$ S" f  r$ p$ H! [  q2 ~1 H2 b) g* h            string result = "";
9 e$ o* l; u) e3 D) X% @' v6 N6 N            long lowerByte;, x8 ^+ D! N3 c" ?( ?( k
            long upperByte;4 v0 Q. z8 C8 S
- a# o  V. L8 B8 i4 i
            foreach (Byte singleByte in BinaryArray). F5 y* _% [; X
            {
1 E! h, f+ I) d- M+ P                lowerByte = singleByte & 15;/ W# Y9 }+ f, W9 E& j3 V
                upperByte = singleByte >> 4;% A# G' ?- t. b
5 N- S% v! h5 ?0 |4 X" M: F
                result += NumberToHex(upperByte);" A7 B: F* z4 y& Q1 T
                result += NumberToHex(lowerByte);
5 p, L) D9 W% ~            }
+ Z1 R' B. Q+ V8 O            return result;
$ V( u$ P! ?: e* y5 A& L. w! g        }[/mw_shl_code]
* |1 e5 l2 N+ T( U$ W6 _& b) ]8 w
[mw_shl_code=csharp,true]private static char NumberToHex(long Number)0 B  `, Y3 O. Q% b2 Y' m, n$ L6 U1 N
        {
$ `1 q( ~8 s! _8 d            if (Number > 9)& G. a. l: s* `# s+ A, `" ?
                return Convert.ToChar(65 + (Number - 10));# `# e, r: E" R! r( M
            else
  A8 U& A; a  O1 Y+ C& T1 p  @                return Convert.ToChar(48 + Number);/ Y: P8 J( H. F5 L+ D4 G
        }[/mw_shl_code]
9 r+ `% G1 r2 g, L$ W' U
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了