MD5密码加密
using System;
using System.Security.Cryptography;
using System.Text; namespace DimoNetwork.Common.DEncrypt
{
public enum MD5ResultMode : byte
{
Strong = ,
Weak =
} /// <summary>
/// 在应用程序中定义用于单向加密文本的方法
/// </summary>
public class TextEncrypt
{
private TextEncrypt()
{
} #region ========加密======== /// <summary>
/// 加密
/// </summary>
/// <param name="Text"></param>
/// <returns></returns>
public static string Encrypt(string Text)
{
return Encrypt(Text, "DimoNet");
}
/// <summary>
/// 加密数据
/// </summary>
/// <param name="Text"></param>
/// <param name="sKey"></param>
/// <returns></returns>
public static string Encrypt(string Text, string sKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray;
inputByteArray = Encoding.Default.GetBytes(Text);
des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(, ));
des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(, ));
System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, , inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
foreach (byte b in ms.ToArray())
{
ret.AppendFormat("{0:X2}", b);
}
return ret.ToString();
} /// <summary>
/// MD5 加密
/// </summary>
/// <param name="password">要加密的字符串</param>
/// <returns></returns>
public static string MD5EncryptPassword(string password, int? length = null)
{
if (password == null)
{
throw new ArgumentNullException("password");
}
return MD5EncryptPassword(password, MD5ResultMode.Strong, length);
} /// <summary>
/// MD5 加密
/// </summary>
/// <param name="password">要加密的字符串</param>
/// <param name="mode">加密强度</param>
/// <returns></returns>
public static string MD5EncryptPassword(string password, MD5ResultMode mode, int? length = null)
{
if (password == null)
{
throw new ArgumentNullException("password");
}
MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();
string str = BitConverter.ToString(provider.ComputeHash(Encoding.UTF8.GetBytes(password)));
if (length != null && length == )
{
str = BitConverter.ToString(provider.ComputeHash(Encoding.UTF8.GetBytes(password)), , );
}
provider.Clear();
if (mode != MD5ResultMode.Strong)
{
return str.Replace("-", null).Substring(, 0x10);
}
return str.Replace("-", null);
} #endregion #region ========解密======== /// <summary>
/// 解密
/// </summary>
/// <param name="Text"></param>
/// <returns></returns>
public static string Decrypt(string Text)
{
return Decrypt(Text, "DimoNet");
}
/// <summary>
/// 解密数据
/// </summary>
/// <param name="Text"></param>
/// <param name="sKey"></param>
/// <returns></returns>
public static string Decrypt(string Text, string sKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
int len;
len = Text.Length / ;
byte[] inputByteArray = new byte[len];
int x, i;
for (x = ; x < len; x++)
{
// i = Convert.ToInt32(Text.Substring(x * 2, 2), 16);
i = System.Convert.ToInt32(Text.Substring(x * , ), );
inputByteArray[x] = (byte)i;
}
des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(, ));
des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(, ));
System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, , inputByteArray.Length);
cs.FlushFinalBlock();
return Encoding.Default.GetString(ms.ToArray());
} #endregion /// <summary>
/// Base64 解码
/// </summary>
/// <param name="message"></param>
/// <returns></returns>
public static string Base64Decode(string message)
{
byte[] bytes = Convert.FromBase64String(message);
return Encoding.UTF8.GetString(bytes);
}
/// <summary>
/// Base64 编码
/// </summary>
/// <param name="message"></param>
/// <returns></returns>
public static string Base64Encode(string message)
{
return Convert.ToBase64String(Encoding.UTF8.GetBytes(message));
}
/// <summary>
/// DSA 加密
/// </summary>
/// <param name="password">要加密的字符串</param>
/// <returns></returns>
public static string DSAEncryptPassword(string password)
{
if (password == null)
{
throw new ArgumentNullException("password");
}
DSACryptoServiceProvider provider = new DSACryptoServiceProvider();
string str = BitConverter.ToString(provider.SignData(Encoding.UTF8.GetBytes(password)));
provider.Clear();
return str.Replace("-", null);
}
/// <summary>
/// MD5 加密
/// </summary>
/// <param name="password">要加密的字符串</param>
/// <returns></returns>
public static string EncryptPassword(string password)
{
if (password == null)
{
throw new ArgumentNullException("password");
}
return MD5EncryptPassword(password);
}
/// <summary>
/// MD5 加密
/// </summary>
/// <param name="password">要加密的字符串</param>
/// <returns></returns>
public static string MD5EncryptPassword(string password)
{
if (password == null)
{
throw new ArgumentNullException("password");
}
return MD5EncryptPassword(password, MD5ResultMode.Strong);
}
/// <summary>
/// MD5 加密
/// </summary>
/// <param name="password">要加密的字符串</param>
/// <param name="mode">加密强度</param>
/// <returns></returns>
public static string MD5EncryptPassword(string password, MD5ResultMode mode)
{
if (password == null)
{
throw new ArgumentNullException("password");
}
MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();
string str = BitConverter.ToString(provider.ComputeHash(Encoding.UTF8.GetBytes(password)));
provider.Clear();
if (mode != MD5ResultMode.Strong)
{
return str.Replace("-", null).Substring(, 0x10);
}
return str.Replace("-", null);
}
/// <summary>
/// SHA1 加密
/// </summary>
/// <param name="password">要加密的字符串</param>
/// <returns></returns>
public static string SHA1EncryptPassword(string password)
{
if (password == null)
{
throw new ArgumentNullException("password");
}
SHA1CryptoServiceProvider provider = new SHA1CryptoServiceProvider();
string str = BitConverter.ToString(provider.ComputeHash(Encoding.UTF8.GetBytes(password)));
provider.Clear();
return str.Replace("-", null);
}
/// <summary>
/// SHA256 加密
/// </summary>
/// <param name="password">要加密的字符串</param>
/// <returns></returns>
public static string SHA256(string password)
{
byte[] bytes = Encoding.UTF8.GetBytes(password);
SHA256Managed managed = new SHA256Managed();
return Convert.ToBase64String(managed.ComputeHash(bytes));
}
}
}
MD5密码加密的更多相关文章
- 使用okHttp登录、Md5密码加密
1.使用okHttp3登录 2.Md5密码加密 3.完整代码 4.项目案例 使用okHttp3登录: 使用okHttp3之前要在build.gradle引入okHttp3的依赖(顺便引入解析数据的gs ...
- Apach Shiro MD5密码加密过程(明文生成密码过程)详细解析
前言: 最近再项目当中使用的ApachShiro安全框架,对于权限和服务器资源的保护都有一个很好的管理.前期主要参考的文章有 项目中设计密码的加盐处理以及二次加密问题,跟着断点 一步步揭开Apach ...
- Django -MD5密码加密与登录
直接贴代码 login_reg.py from django.shortcuts import render, redirect from web.forms.login_reg import Reg ...
- 015 Android md5密码加密及其工具类
1.md5加密介绍 MD5算法是广泛使用的杂凑函数,也就是哈希函数,英文全拼是:Message Digest Algorithm,对应的中文名字是消息摘要算法. MD5加密:将字符串转换成 32位的字 ...
- 添加MD5 密码加密
编辑 /etc/grub/grub.conf 配置文件 password = 123456 password --md5 $5$H.........SS grub-crypt --md5 ...
- C#:使用MD5对用户密码加密与解密
C#中常涉及到对用户密码的加密于解密的算法,其中使用MD5加密是最常见的的实现方式.本文总结了通用的算法并结合了自己的一点小经验,分享给大家. 一.使用16位.32位.64位MD5方法对用户名加密 1 ...
- JAVA中使用MD5加密实现密码加密
1.新建Md5.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 package c ...
- 使用md5的密码加密,处理用户的密码
需求 1.新增用户保存:使用md5的密码加密,如果用户没有填写密码,设置初始密码“123”: 2.修改用户保存:使用md5的加密加密 *如果修改了密码,需要进行md5的密码加密: *如果没有修改密码, ...
- 转 C#:使用MD5对用户密码加密与解密
C#中常涉及到对用户密码的加密于解密的算法,其中使用MD5加密是最常见的的实现方式.本文总结了通用的算法并结合了自己的一点小经验,分享给大家. 一.使用16位.32位.64位MD5方法对用户名加密 1 ...
随机推荐
- 使用Codis-Admin命令配置环境
前提条件:由于22.35.60服务器各自配置了Codis-Service主机,所以22.35.60对应的ip和端口要求能通信和互信访问,为下面通过60的dashboard配置22.35.60实现分组. ...
- do {...} while (0) 的用途汇总(欢迎补充)
在一些Linux内核和其它的开源代码中,我们经常看到像下面这样的代码: do{ ... }while(0) 该代码片段并非循环,这样想想似乎使用do…while没有任何意义,那么为什么还要使用它呢? ...
- Redis简介及应用场景
一丶Redis介绍 Redis是一个开源的 key—value型 单线程 数据库,支持string.list.set.zset和hash类型数据. 默认端口:6379 默认数据库数量:16 二.优点: ...
- 了解java虚拟机—垃圾回收算法(5)
引用计数器法(Reference Counting) 引用计数器的实现很简单,对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器减1.只要对象A的引用计数器的 ...
- Number Sequence(hdu4390)
Number Sequence Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tot ...
- Idea的Maven项目引入模块
File->Project Structures->Modules 点击那个加号,选择Import Module
- Android四大组件-Broadcast Receiver
http://www.jianshu.com/p/1013a366cc72 http://www.jianshu.com/p/ca3d87a4cdf3 前言 基础知识. 1.Android广播分为两个 ...
- hadoop学习之yarn资源管理
一.yarn简介 yarn是在hadoop2.x中才引入的一个新的机制,在hadoop1.x中MapReduce任务需要同时做任务管理和资源分配,那么引入yarn之后,hadoop的资源管理的任务就全 ...
- PHP 类文件的自动加载机制 __autoload()
如果一个类在多个脚本中都需要使用,可以将一个类的定义代码,单独的封装到一个文件中,这种文件也叫作类文件,在需要的时候,将整个文件载入进来即可! PHP在执行的时候,如果发现需要一个类(只要是和这个类相 ...
- js-ES6学习笔记-module(1)
1.在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种.前者用于服务器,后者用于浏览器.ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,完全可 ...