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

MD5加密方法介绍

[复制链接]

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

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

Araser 楼主

2018-12-5 10:28:35

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

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

x
MD5算法简单的来说就是把任意长度的字串变换成固定长度(通常是128位)的16进制串。RFC 1321定义了MD5算法。" H) E8 }, s6 p0 P, n& [
MD5的用途主要有:% m: Y: X- p# }9 \
一致性验证。比如我们从网上下载了某个文件,网站上一般会给出该文件的MD5值,我们下载下来后,可以利用工具计算出& N  l+ Z; z" x) H; a
新的MD5值,与正确的MD5值进行对照,如果不一样,则可以断定该文件下载出错或被篡改了。4 F! y! R  n8 V3 y5 t8 E8 u
数字签名。可以用MD5算法对发布的程序或发布的消息生成MD5值作为签名等。; y  R- w: z5 g3 p+ B: u
密码存储。在传输过程中或存储过程中,直接用明文的密码都是很危险的。可以在传输之前先用MD5加密,存储也不用存储, l1 Y- ?! S! Q$ g2 G
明文,可以直接存储MD5值。在验证时,先把输入的密码转换成MD5值再与存储值进行对比。
对于密码存储,Asp.net的实现方法为:

! a1 K9 G  m2 P. b; |: s: K' W
[mw_shl_code=csharp,true]protected void Page_Load(object sender, EventArgs e)
  ]5 z" ~$ L0 ^7 L! w  g/ ~        {4 j6 F" d) p2 }: C6 f+ J
            string plainPassword = "innovator";
- |) j; v* }- u" \8 C( n6 m# U/ B; N) L& p! d% X5 l7 ~8 `
            System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
/ D; K. w7 ~+ n            System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
/ G7 p) X: r7 {            byte[] data = ascii.GetBytes(plainPassword);
/ {  ^; N8 Q8 P7 t- `& \            byte[] result = md5.ComputeHash(data);0 \& }9 I) v: n9 t- `
            // Convert the MD5 result to Hexadecimal string6 z7 z6 `" M2 n2 `7 [  L/ o
: C& }1 P1 D! f3 O) |
            string MD5Password = BinaryToHex(result);* z: L  [8 o5 n# p9 E7 m
            string aa = "";
9 G* y! C2 a' q( @2 T        }[/mw_shl_code]
+ D, s& R7 ^/ {6 B* `
[mw_shl_code=csharp,true]private String BinaryToHex(byte[] BinaryArray)+ m/ A/ s8 c( Z
        {7 K! D& D2 C0 |$ h+ }
            string result = "";
! y9 U+ c1 ~6 [! a& Q* `            long lowerByte;3 F/ }: g' _1 v8 |) O
            long upperByte;8 s5 m- k' p7 ?( O

0 z( T! M' g+ r( Z% D            foreach (Byte singleByte in BinaryArray)
8 o! ^; f$ G8 l. L8 v3 R& U            {
* g5 t- g+ d5 x' E                lowerByte = singleByte & 15;
, g& m2 {- W% F0 [5 |1 h, I; e                upperByte = singleByte >> 4;) X3 n: q6 B- l& R( v2 ?% }

) {2 x, L/ J8 n                result += NumberToHex(upperByte);* t; U/ |& E7 |6 y$ Q+ r: Y7 S
                result += NumberToHex(lowerByte);7 o6 t) Y4 e& A# Y9 k4 M
            }* P# t8 C' Y8 Y8 s% |# Q
            return result;) e) G% T, q" H
        }[/mw_shl_code]

: M2 r" T" A# v& P9 b
[mw_shl_code=csharp,true]private static char NumberToHex(long Number)7 D+ r# l  J6 M2 {* d/ X  E9 U
        {
' z$ z& d+ o4 m" }1 ^1 U9 c            if (Number > 9)
" `/ a/ i" W( A                return Convert.ToChar(65 + (Number - 10));5 k# }% c; C8 e5 n$ f
            else# j" e9 m3 `' }
                return Convert.ToChar(48 + Number);
! ?7 g& }; q9 t8 \6 N: M  Y        }[/mw_shl_code]

* H7 t1 s; ]# L& x) ^& ]1 t
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了