PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

MD5加密方法介绍

[复制链接]

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

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

Araser 楼主

2018-12-5 10:28:35

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

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

x
MD5算法简单的来说就是把任意长度的字串变换成固定长度(通常是128位)的16进制串。RFC 1321定义了MD5算法。
5 v0 g; M. ~3 L& qMD5的用途主要有:
) H5 Y# @9 ?% [一致性验证。比如我们从网上下载了某个文件,网站上一般会给出该文件的MD5值,我们下载下来后,可以利用工具计算出7 Y3 {8 g: c: c7 P. S# b
新的MD5值,与正确的MD5值进行对照,如果不一样,则可以断定该文件下载出错或被篡改了。
" Q. n6 ^- L8 y. r* U$ P数字签名。可以用MD5算法对发布的程序或发布的消息生成MD5值作为签名等。
2 }. j9 C7 ?6 s0 Y8 n; m密码存储。在传输过程中或存储过程中,直接用明文的密码都是很危险的。可以在传输之前先用MD5加密,存储也不用存储
5 ^- K: u) R* p1 Y+ R8 V明文,可以直接存储MD5值。在验证时,先把输入的密码转换成MD5值再与存储值进行对比。
对于密码存储,Asp.net的实现方法为:

: Z) U) O5 e0 T5 [2 p" H, F/ f  E
[mw_shl_code=csharp,true]protected void Page_Load(object sender, EventArgs e)6 o; R" x5 E6 g/ U
        {) W9 \' j  [+ X
            string plainPassword = "innovator";
+ [, q+ O) c9 O* Q& x# x, |
7 i; ]; K  X0 A7 ^: ?            System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();% Q" G& D! {8 B9 v! i; B% Y
            System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
+ P' T/ A/ X! ~; k0 K. R            byte[] data = ascii.GetBytes(plainPassword);; _$ Y) z, V6 V1 c0 R+ q( C
            byte[] result = md5.ComputeHash(data);
! `: r/ p6 ~' S            // Convert the MD5 result to Hexadecimal string% _3 c& j& G: x$ K* w+ s, K
2 A" {6 k/ h; u0 R6 y6 |3 s
            string MD5Password = BinaryToHex(result);
/ v! \/ X' d+ S8 D% f% X/ `: {            string aa = "";
/ i' m& v. {$ p* }" Z        }[/mw_shl_code]
2 e7 p/ F: h9 G5 m6 G
[mw_shl_code=csharp,true]private String BinaryToHex(byte[] BinaryArray)) o2 d% W( f: u* T" x
        {
7 L) A' r6 v2 T5 s2 {' u& W% `            string result = "";
, k0 E9 P. b/ i            long lowerByte;) H+ f9 ]! y" U, d0 `( `
            long upperByte;, n2 M3 j2 R8 I

- j4 r0 x5 d6 k: Z" Y            foreach (Byte singleByte in BinaryArray)
; v8 @) L( M$ K/ A; b            {: ]- w, ]- i) I0 \
                lowerByte = singleByte & 15;( `+ ?) @7 C  S1 ?* I( ?" ?# l
                upperByte = singleByte >> 4;% [0 P- A* {3 ~; E, P: I- c" Z4 Y( D% F

5 v' H9 l  R/ l. D; K  b8 @, R                result += NumberToHex(upperByte);2 ^3 J" g3 w# \  `) E5 ]9 i. d) m" X
                result += NumberToHex(lowerByte);) A! u" ]  y+ ^- A9 b
            }, ?4 V# x: j6 r( C
            return result;8 c0 {5 v0 R" t. K
        }[/mw_shl_code]
5 a% ^, o8 v/ A' f# q: G6 o/ K
[mw_shl_code=csharp,true]private static char NumberToHex(long Number)
+ `' x5 f9 i; I1 }4 m        {
& Y1 G% |/ n+ D* a$ T- N$ h: r            if (Number > 9)9 o3 Z2 r7 [3 F3 Q" l
                return Convert.ToChar(65 + (Number - 10));1 j! _5 O8 Z: k0 P
            else6 `( Y9 V: r4 N& I2 {
                return Convert.ToChar(48 + Number);
& H9 f' p( |$ U" \6 X- y( `9 ~        }[/mw_shl_code]
$ n; j9 @9 t9 g9 H& _
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了