MD5是一个安全的散列算法,有两个特点:
1、输入两个不同的明文(一段原始的数字信息)不会得到相同的输出值
2、根据输出值,不能得到原始的明文,即过程不可逆
所以要解密MD5没有现成的算法,只能用穷举法,把可能出现的明文,用MD5算法散列之后,把得到的散列值和原始的数据形成一个一对一的映射表,然后在所谓的解密的时候,都是通过这个映射表来查找其所对应的原始明文。
而绝对没有一种算法,可以通过输出加密后的散列值算出原始明文。

了解更多看百度百科:

http://baike.baidu.com/link?url=R7WBookslKWRvprcZ6o4ZkurlXDPTaCqr6kTzT1WWIPwTgb5eRpi2e6dVXMEKoM_

http://baike.baidu.com/link?url=HsaSyVnnJ3n2Ep2XVoSPv0SBJRvCY0Zm18MqDZIvvkJUwSZvgz4yS9upDY_YTVcVBOpUZUxFVyio4r_yY0Xq5K

MD5加密是不可逆的。故数据已经很安全了,代码如下

MD5CryptoServiceProvider在命名空间:System.Security.Cryptography;

    #region =======MD5加密======
/// <summary>
/// MD5加密
/// </summary>
/// <param name="sDataIn"></param>
/// <returns></returns>
public static string GetMD5(string sDataIn)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] bytValue, bytHash;
bytValue = System.Text.Encoding.UTF8.GetBytes(sDataIn + "unity3d");
bytHash = md5.ComputeHash(bytValue);
md5.Clear();
string sTemp = "";
for (int i = ; i < bytHash.Length; i++)
{
sTemp += bytHash[i].ToString("X").PadLeft(, '');
}
return sTemp.ToLower();
}

当然,你可以把原始密码用MD5加密几次。这样是不是更加安全呢。

 /// <summary>
/// 登陆入口,用于密码加密,加密后的密码为: s+md5(s+md5(pwd))
/// </summary>
/// <param name="pwd">用户输入的密码或者数据库中存储的用户密码</param>
/// <param name="s">随机产生一个两位的字母:s,也可以自己指定字母</param>
/// <returns></returns>
public static string Entry(string pwd, string s)
{
if (string.IsNullOrEmpty(s))
{
Random randmon = new Random();
s = ((char)randmon.Next(, )).ToString() + ((char)randmon.Next(, )).ToString();
}
return s + GetMD5((s + GetMD5(pwd)));
}

然后直接调用Entry("unity3d","AB");即可。

数据加密之MD5加密的更多相关文章

  1. Android数据加密之MD5加密

    前言: 项目中无论是密码的存储或者说判断文件是否是同一文件,都会用到MD5算法,今天来总结一下MD5加密算法. 什么是MD5加密? MD5英文全称“Message-Digest Algorithm 5 ...

  2. Android数据加密之Rsa加密

    前言: 最近无意中和同事交流数据安全传输的问题,想起自己曾经使用过的Rsa非对称加密算法,闲下来总结一下. 其他几种加密方式: Android数据加密之Rsa加密 Android数据加密之Aes加密 ...

  3. Android数据加密之Aes加密

    前言: 项目中除了登陆,支付等接口采用rsa非对称加密,之外的采用aes对称加密,今天我们来认识一下aes加密. 其他几种加密方式: Android数据加密之Rsa加密 Android数据加密之Aes ...

  4. Android数据加密之Des加密

    前言: 端午节前有个同事咨询我有关Android DES加密的相关实现,简单的实现了一下,今天来总结一下. 其他几种加密方式: Android数据加密之Rsa加密 Android数据加密之Aes加密 ...

  5. IOS 数据加密总结(及MD5加密)

    数据安全总结 1.网络数据加密1> 加密对象:隐私数据,比如密码.银行信息2> 加密方案* 提交隐私数据,必须用POST请求* 使用加密算法对隐私数据进行加密,比如MD53> 加密增 ...

  6. IOS 数据加密方式(加盐,MD5加密,)

    加密方式封装 @interface NSString (Hash) @property (readonly) NSString *md5String; @property (readonly) NSS ...

  7. iOS,一行代码进行RSA、DES 、AES、MD5加密、解密

    本文为投稿文章,作者:Flying_Einstein(简书) 加密的Demo,欢迎下载 JAVA端的加密解密,读者可以看我同事的这篇文章:http://www.jianshu.com/p/98569e ...

  8. 2 MD5加密 java实现

    百度百科对MD5的说明是: Message Digest Algorithm MD5(中文名为消息摘要算法第 五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护. MD5即Mess ...

  9. IOS中DES与MD5加密方案

      0 2 项目中用的的加密算法,因为要和安卓版的适配,中间遇到许多麻烦. MD5算法和DES算法是常见的两种加密算法. MD5:MD5是一种不可逆的加密算法,按我的理解,所谓不可逆,就是不能解密,那 ...

随机推荐

  1. Dapper的数据库连接管理(打开、关闭)

    Dapper对于数据库连接的管理:如果已经打开,它会关闭连接.如果你只是做一个快速查询-让Dopter自己处理它. 如果你做了很多事情,你应该自己打开连接,并在最后关闭连接,所有的查询在中…只是从效率 ...

  2. python实现支持目录FTP上传下载文件的方法

    #!/usr/bin/env python # -*- coding: utf-8 -*- import ftplib import os import sys class FTPSync(objec ...

  3. [No0000112]ComputerInfo,C#获取计算机信息(cpu使用率,内存占用率,硬盘,网络信息)

    github地址:https://github.com/charygao/SmsComputerMonitor 软件用于实时监控当前系统资源等情况,并调用接口,当资源被超额占用时,发送警报到个人手机: ...

  4. 为什么css定位雪碧图(合成图)都要以负号开头?

    (1)正常来说 定位坐标是以 合成图片 左上角这个点作为原点(0px,0px)开始读取的, 而你的图片全都在坐标系的 第四象限 background-position: x y:(x,y为数值或百分比 ...

  5. 看数据库的文件大小 MySQL Binlog日志的生成和清理规则

    小结: 1.避免并行大大事务对磁盘.内存的消耗: MySQL数据文件导致实例空间满的解决办法_空间/内存_常见问题_云数据库 RDS 版-阿里云 https://help.aliyun.com/kno ...

  6. 最佳实践:腾讯HTAP数据库TBase助力某省核心IT架构升级

    https://mp.weixin.qq.com/s/56NHPyzx5F6QeCjuOq5IRQ 资源隔离能力: 在HTAP系统中,OLTP和OLAP业务要同时运行,两者都会消耗巨量的资源都,如果不 ...

  7. 读书笔记-iOS核心动画高级技巧

    如果不使用+imageNamed:,那么把整张图片绘制到CGContext可能是最佳的方式了. 这里我们利用了CALayer的KVC来存储和检索任意的值,将图层和索引打标签. 使用KVC打标签

  8. delphi传递变量给fastreport

    delphi传递变量给fastreport   1.打开frReport报表设计.2.打开file->data dictionary加变量.这里比如加title,bm,zbr,gj,zrs3.在 ...

  9. 转:EL表达式的11个内置对象

    原文地址:https://blog.csdn.net/qq_17045385/article/details/54799998 EL是JSP内置的表达式语言 JSP2.0开始,不让再使用Java脚本, ...

  10. python各种模块,迭代器,生成器

    从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能) 本质就是.py结尾的python文件(文件名:test.py,对应的模块名就是test) 包:用来从逻辑上组织模块的,本质就是一个目 ...