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

MD5加密方法介绍

[复制链接]

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

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

Araser 楼主

2018-12-5 10:28:35

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

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

x
MD5算法简单的来说就是把任意长度的字串变换成固定长度(通常是128位)的16进制串。RFC 1321定义了MD5算法。
$ p$ r  U" t/ j/ Q6 w% S7 |9 v. u  lMD5的用途主要有:' |* B3 t  F+ k0 Z5 [
一致性验证。比如我们从网上下载了某个文件,网站上一般会给出该文件的MD5值,我们下载下来后,可以利用工具计算出
, I+ B+ x+ ~7 ^" ]( V新的MD5值,与正确的MD5值进行对照,如果不一样,则可以断定该文件下载出错或被篡改了。
$ Q. r8 Q. V, m数字签名。可以用MD5算法对发布的程序或发布的消息生成MD5值作为签名等。* m0 s6 {' n% l% B  q5 V, u; u
密码存储。在传输过程中或存储过程中,直接用明文的密码都是很危险的。可以在传输之前先用MD5加密,存储也不用存储
* S9 E4 a! {$ F/ A+ Y: N! y明文,可以直接存储MD5值。在验证时,先把输入的密码转换成MD5值再与存储值进行对比。
对于密码存储,Asp.net的实现方法为:
2 f( A  [5 u* R5 _
[mw_shl_code=csharp,true]protected void Page_Load(object sender, EventArgs e)
; q- C6 T- ]* X: x1 F1 e        {# _, _- ~! D. ~% k$ U  o. @  i
            string plainPassword = "innovator";2 ]+ h* Y& v9 Z; K+ ~& g
, x. b8 h; s" t
            System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();& l* E! D8 q1 W6 i& Y+ [
            System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
& f9 _' \( Z  h7 n8 `) _            byte[] data = ascii.GetBytes(plainPassword);" D$ `' T5 Y. _" @+ D: [  C
            byte[] result = md5.ComputeHash(data);
1 D' L, O3 F8 R# z+ f4 q2 u; q. ^            // Convert the MD5 result to Hexadecimal string( j% t6 v: D' ]

; }7 g  Z% K' K1 a8 k4 e" c            string MD5Password = BinaryToHex(result);: g' Z3 [3 M6 E+ L( T
            string aa = "";
" U4 r) Z0 e1 E0 ]1 q6 q, @- E6 C        }[/mw_shl_code]
$ n; d, `6 }2 I; z* G/ h
[mw_shl_code=csharp,true]private String BinaryToHex(byte[] BinaryArray)
* l0 F& c# [( T: E        {
# Z1 h/ a5 U9 {* K4 v. ^6 @            string result = "";
' u0 d& f9 K/ {0 A' j            long lowerByte;. m& D  h8 q4 w: a
            long upperByte;
6 {; H. Q) L) K/ u/ r" h( N
5 ^% M4 Y  X7 R- `. A0 ^' _/ w            foreach (Byte singleByte in BinaryArray)' G6 x8 B9 S7 s' i' d- l
            {- f  U! I. X  t& S
                lowerByte = singleByte & 15;
1 J! p9 V9 M* K! q% f. u7 ~* d                upperByte = singleByte >> 4;
/ t9 _% g" r5 G9 ]6 U# o# v
) T' H5 B, y5 H& m: o; ?                result += NumberToHex(upperByte);% f8 V7 A0 ]1 U. K! Q, A0 j
                result += NumberToHex(lowerByte);3 ?* B5 N' m3 L/ O5 B7 W
            }
1 f, Q) l$ H- ?% L6 O3 b            return result;
6 z; c: b' U; H" {, t        }[/mw_shl_code]

' K, y, [$ d0 T7 A& d" h
[mw_shl_code=csharp,true]private static char NumberToHex(long Number)
5 l$ g: b5 K8 S: k1 E        {" E$ l' V, {- V- Z; K
            if (Number > 9)+ o9 ?2 N: M# p/ @
                return Convert.ToChar(65 + (Number - 10));1 a5 P, u& {: |0 t0 m- N
            else
7 b! d6 H* Z; g$ y5 ?                return Convert.ToChar(48 + Number);
" v0 s( g* r( ]" m5 \& h9 C7 X        }[/mw_shl_code]

, O3 G" c3 @2 t4 [; g2 @
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了