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 1833 0

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

Araser 楼主

2018-12-5 10:28:35

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

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

x
MD5算法简单的来说就是把任意长度的字串变换成固定长度(通常是128位)的16进制串。RFC 1321定义了MD5算法。# N4 ?  Z4 T/ X; n! Z4 x# B
MD5的用途主要有:5 w+ T; d/ h, v% M- K' {9 T
一致性验证。比如我们从网上下载了某个文件,网站上一般会给出该文件的MD5值,我们下载下来后,可以利用工具计算出
5 ~# @* W2 F& g$ @4 ?4 M0 t. K新的MD5值,与正确的MD5值进行对照,如果不一样,则可以断定该文件下载出错或被篡改了。
- ?2 A# y9 P# T9 K0 w! T数字签名。可以用MD5算法对发布的程序或发布的消息生成MD5值作为签名等。
9 F' s) b& P1 T* \* q! R2 ?密码存储。在传输过程中或存储过程中,直接用明文的密码都是很危险的。可以在传输之前先用MD5加密,存储也不用存储
% Z$ p4 U, ~* d8 {$ Q明文,可以直接存储MD5值。在验证时,先把输入的密码转换成MD5值再与存储值进行对比。
对于密码存储,Asp.net的实现方法为:

; j  Y5 I3 Q9 h4 t" s
[mw_shl_code=csharp,true]protected void Page_Load(object sender, EventArgs e)6 x0 f1 M: n. q4 k+ c: D  S
        {
- C- B( P# X' y            string plainPassword = "innovator";% N! V* l' @4 U# _

, S  U" V% n4 q& d" g            System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
3 ^) w8 `$ c" s6 d3 P$ u            System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
- M3 U2 d3 `% I  a. H8 t7 w. m9 ^: \1 R            byte[] data = ascii.GetBytes(plainPassword);
* R; g; ^& P: O  K: ?6 }# e            byte[] result = md5.ComputeHash(data);
8 o' j0 j! K( g* s            // Convert the MD5 result to Hexadecimal string
) _3 e5 E; g2 r; }6 c+ C+ }3 o& v) e. r7 _/ q$ w* {% P
            string MD5Password = BinaryToHex(result);
  H. a. @2 T- @; G! A            string aa = "";% z, A0 L2 _. L5 p* g
        }[/mw_shl_code]
; A( C' e+ T* X) k& u
[mw_shl_code=csharp,true]private String BinaryToHex(byte[] BinaryArray): t0 B% v0 Y' E/ g
        {" T+ h! Q) s: c6 h# A3 p7 t
            string result = "";+ z. `& u  x0 ]  y* B* \2 Q
            long lowerByte;  h2 T9 P, F3 H) q( k; x
            long upperByte;8 C1 U3 l! p3 c* h8 ?1 q

* N, a0 a6 \% c, z/ E; @            foreach (Byte singleByte in BinaryArray)3 r9 [6 o9 m: @/ [6 {4 y) g+ }  ?
            {5 r5 F7 G4 c8 {% X: t: b4 P$ _, U* ^. }" E
                lowerByte = singleByte & 15;) j% N& ?- W$ \/ y$ Z
                upperByte = singleByte >> 4;
7 f; j1 l% R8 a1 L; M9 a) k6 ]
& s5 y+ c2 H7 q! C5 w                result += NumberToHex(upperByte);* t  p; [/ Q  A8 B8 y5 v- U
                result += NumberToHex(lowerByte);# r% z; S# u5 M" R2 V9 y8 D9 [
            }% h9 y- w. f; a$ l
            return result;
, \$ Z5 E5 p  z. ?0 _& C9 q* s        }[/mw_shl_code]

/ G* B# j( }: W6 Q
[mw_shl_code=csharp,true]private static char NumberToHex(long Number)6 T% ]. u5 p4 r) O3 D! N
        {
( J2 ]3 j8 j! U) p            if (Number > 9)0 r# `2 J9 |2 x: L2 ?2 M: C7 {7 T
                return Convert.ToChar(65 + (Number - 10));! V* w/ w  G4 ^, n5 Z
            else
9 H5 T1 Y1 L$ T+ W                return Convert.ToChar(48 + Number);0 Y" u( J. _- ?) x- q
        }[/mw_shl_code]
* d* }! K9 T& R1 R( {% l
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了