关于网上常见的几种MD5加密的区别

(1)

using System.Security.Cryptography;

       byte[] result = Encoding.Default.GetBytes(yps);    //tbPass为输入密码的文本框
            MD5 md5 = new MD5CryptoServiceProvider();
            byte[] output = md5.ComputeHash(result);
            string str = BitConverter.ToString(output).Replace("-", "");
            if(str.Length!=32)
                System.Diagnostics.Debug.WriteLine("开始调试");
            return str;

(2)

using System.Security.Cryptography;

            string cl = yps;
            string pwd = "";
            MD5 md5 = MD5.Create();//实例化一个md5对像
            // 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择 
            byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
            if (s.Length != 16)
                System.Diagnostics.Debug.WriteLine("开始调试");
            // 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
            for (int i = 0; i < s.Length; i++)
            {
                // 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
                pwd = pwd + s[i].ToString("X");

            }
            if (pwd.Length != 32)
                System.Diagnostics.Debug.WriteLine("开始调试");
            return pwd;

(3)

using System.Web.Security;

password = FormsAuthentication.HashPasswordForStoringInConfigFile(cpassword, "MD5");

上述三种方式的MD5加密,具体原理不知了。说说微小区别

(1)与(3)的Md5值是一样的。(2)与(1)、(3)的Md5值有微小区别,原因是

pwd = pwd + s[i].ToString("X"); 该语句转化为16进制时,如果转化值为一位,比如3等,另外两种方法此时转化后的值为03,造成最后的Md5值小于等于32位,从而造成(2)与(1)、(3)的Md5值不一定相等所以,如果Md5加密,最好使用同一种方式。
时间: 2025-01-02 17:53:12

关于网上常见的几种MD5加密的区别的相关文章

android环境下两种md5加密方式

在平时开发过程中,MD5加密是一个比较常用的算法,最常见的使用场景就是在帐号注册时,用户输入的密码经md5加密后,传输至服务器保存起来.虽然md5加密经常用,但是md5的加密原理我还真说不上来,对md5的认知目前仅仅停留在会使用的水平,想搞清楚还是要花点时间的,这是md5加密算法的相关介绍.本文主要介绍android平台下两种md5加密方式,分别为基于java语言的md5加密及ndk环境下基于c语言的md5加密. 下面代码为基于java语言的md5加密: public String getMD5

16位的MD5加密和32位MD5加密的区别

16位的MD5加密和32位MD5加密的区别 MD5加密后所得到的通常是32位的编码,而在不少地方会用到16位的编码它们有什么区别呢?16位加密就是从32位MD5散列中把中间16位提取出来!其实破解16位MD5散列要比破解32位MD5散列还慢因为他多了一个步骤,就是使用32位加密后再把中间16位提取出来, 然后再进行对比而破解32位的则不需要,加密后直接对比就可以了 admin 的加密代码:16位加密:7a57a5a743894a0e32位加密:21232f297a57a5a743894a0e4a

iOS之那几种加密 MD5加密.

前言: 好好活着,因为我们会死很久.---海腾 iOS之那几种加密 MD5加密.  接下来我们看代码 NSString+MD5.h   // // NSString+MD5.h // UI21_MD5加密 // // Created by JR_Rafael on 16/1/11. // Copyright © 2016年 lanou3g. All rights reserved. // #import <Foundation/Foundation.h> @interface NSString

常见的7种网上赚钱模式

互联网是个江湖,一提通过“互联网可以赚钱”(简称网上赚钱),很多人第一反应就是骗子!大骗子!到底是什么造成人们会有这样的条件反射的原因?大家被骗 怕了,今天看到一位同学的说说里面讲到一个大学生被骗去刷流量,结果被骗了,然后又想查骗子的IP,结果说能查IP的又是骗子,接二连三的被骗,不得不奉 劝各位网赚有风险,入行需谨慎!也就难怪大家会认为网上赚钱就是骗钱了. 互 联网这个江湖鱼龙混杂,能够保持自己的道德底线和坚持原则实属不易,看似简单的一个转发信息就可能让不了解网上赚钱的人陷入骗局,很多灰色方式

C#对于md5加密的两种方式

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Security.Cryptography; namespace XXXXX{ /// <summary> /// 加密文件帮助类 /// </summary> public class EncryptionHelper { /// <summary> /// MD5(16位加密)

.net实现md5加密 sha1加密 sha256加密 sha384加密 sha512加密 des加密解密

写项目时,后台一直用md5加密,一天群里人问,除了MD5还有其它的加密方法吗?当时只知道还有个SHA,但怎么实现什么的都不清楚,于是当网上找了下,把几种常见的加密方法都整理了下,用winform写了个程序,如图: 关键代码 using System.Security;using System.Security.Cryptography;using System.Web;using System.IO; //MD5 不区分大小写的        //type 类型,16位还是32位,16位就是取3

4、C#进阶:MD5加密、进程、线程、GDI+、XML、委托

MD5加密 将字符串进行加密,无法解密.网上的解密方式也都是在库里找,找不到也没有. 1 protected void Page_Load(object sender, EventArgs e) 2 { 3 string s = "123"; 4 Response.Write(getMd5(s)); 5 } 6 public string getMd5(string str) 7 { 8 MD5 md5 = MD5.Create();//MD5抽象类无法实例化 实例化该方法 9 byt

MD5加密和sha加密

sha加密原理Algorithm)又叫安全哈希加密技术,是当今世界最先近的加密算法.主要用于文件身份识别.数字签名和口令加密等. 对于明文信息A,通过SHA1算法,生成一条160位长的识别码B.且明文信息A和识别码B之间同时满足以下条件: 1.对于任意两条不同的明文信息A1.A2,其识别码B1.B2都不相同. 2.无法通过逆向算法由识别码B倒推出明文信息A. MOONCRM的用户密码采用SHA1加密存储,即服务器上存储的只是 由用户密码生成的识别码,而用户密码本身并没有存储在服务器上.用户输入登

aip接口中对url参数md5加密防篡改的原理

目前网上所有开放api的网站中,数据的调用都是采用同一种方式,即: http:www.xxx.com/aa=1&bb=2...,原后对这些参数按字典顺序排序后进行md5加密,将md5加密串与接口方提供的 key接在参数后面提交,如http:www.xxx.com/aa=1&bb=2&sg=md5(...)& key=3432423,服务器端把这些参数接收后以同样的方式生成md5与提交的sg参数核对是否一致,以达到防止篡改与验证合法性的目的. 我现在的疑问是,既然参数可以被篡