PLM之家PLMHome-国产软件践行者

MD5加密方法介绍

[复制链接]

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

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

Araser 楼主

2018-12-5 10:28:35

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

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

x
MD5算法简单的来说就是把任意长度的字串变换成固定长度(通常是128位)的16进制串。RFC 1321定义了MD5算法。, g; ], ^1 Z. I% C
MD5的用途主要有:+ V9 j' W" s8 Y/ V
一致性验证。比如我们从网上下载了某个文件,网站上一般会给出该文件的MD5值,我们下载下来后,可以利用工具计算出
6 U/ l8 y+ n: A% a* z" p: g新的MD5值,与正确的MD5值进行对照,如果不一样,则可以断定该文件下载出错或被篡改了。+ s; Z. [& x4 ~- V! ?* e1 d# m; e
数字签名。可以用MD5算法对发布的程序或发布的消息生成MD5值作为签名等。9 V/ N& t; S( z4 O5 H8 V/ p
密码存储。在传输过程中或存储过程中,直接用明文的密码都是很危险的。可以在传输之前先用MD5加密,存储也不用存储
3 T( v) p& O* R9 z+ k明文,可以直接存储MD5值。在验证时,先把输入的密码转换成MD5值再与存储值进行对比。
对于密码存储,Asp.net的实现方法为:
+ t5 b% B% {; L
[mw_shl_code=csharp,true]protected void Page_Load(object sender, EventArgs e)8 G/ H6 o) R2 ~/ O
        {
6 N  J5 o$ s0 |0 I+ N            string plainPassword = "innovator";
; j* p& z' \) }: ~/ a  j. g5 \! N! A, s) p( C# G5 L
            System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
* h, X% _9 W" o            System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
) Z$ O6 w; F. }: |8 A$ F            byte[] data = ascii.GetBytes(plainPassword);
0 e& D# z) g* f+ E- F            byte[] result = md5.ComputeHash(data);
* O) s7 S2 I& n) x7 a            // Convert the MD5 result to Hexadecimal string# w- e  m/ z% R' [8 o( ?; ]

7 `) ~9 b/ o6 r7 ?            string MD5Password = BinaryToHex(result);9 d" j0 Q0 o- f. h  C9 t& E" D
            string aa = "";( ^/ G9 p8 l  Y( _) E: d
        }[/mw_shl_code]

8 ]: z: C$ r4 T3 X: Q" V
[mw_shl_code=csharp,true]private String BinaryToHex(byte[] BinaryArray)) z1 |0 t, `% B9 W% N( `8 X
        {) L2 i) c2 p; Z0 U  |( `8 ~1 `" q
            string result = "";6 T, S, S4 b# z/ r- C: ]- b
            long lowerByte;4 j2 x4 V6 S2 B1 u6 y
            long upperByte;' f5 K: l+ x- |; Y9 `
/ ^$ v3 Z) d7 c3 X" G( l
            foreach (Byte singleByte in BinaryArray)
1 C( c: O& O5 j$ X3 O$ A# ~1 M            {
; J2 L3 L, o! ], {) \% h                lowerByte = singleByte & 15;
9 Z- m: q" R4 w                upperByte = singleByte >> 4;
8 W3 p4 H3 G2 H( J" q  [
  \! R8 z6 z9 h2 t$ d% y                result += NumberToHex(upperByte);
: A; `" X7 A* l. h! J+ ~6 X% F                result += NumberToHex(lowerByte);$ Y1 [* y0 S. K; e. Y
            }
1 ?' k% u; r1 f. C            return result;
) r+ _. }5 G& Q  @* v3 a        }[/mw_shl_code]

7 Q* x, o1 R+ q. l* G; P8 u
[mw_shl_code=csharp,true]private static char NumberToHex(long Number)0 g& B* Q0 F8 J- C/ v5 d
        {1 f8 U1 f( M- K0 W2 l
            if (Number > 9)) Z! Z8 I  a4 {# `, o$ N  }
                return Convert.ToChar(65 + (Number - 10));
5 {6 V- k3 f  C  c* O            else
& i- q0 h$ p% b$ G% X* b. D5 v                return Convert.ToChar(48 + Number);+ S  t+ Z- ?/ G6 r* o
        }[/mw_shl_code]
" y2 D5 O7 V3 I/ b: ]
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了