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 ...
随机推荐
- java web 机试
经过近一个月的学习,我们的java web已经学习完了. 这是我们这次的机试题. 一:题目 请利用MVC设计模式,并使用JSP.Servlet.JSTL和JQuery等技术实现动态条件的分页显示查询. ...
- 程序员必知的8大排序(一)-------直接插入排序,希尔排序(java实现)
http://blog.csdn.net/pzhtpf/article/details/7559896 程序员必知的8大排序(一)-------直接插入排序,希尔排序(java实现) 程序员必知的8大 ...
- 数据存储之属性列表Plist
常用的数据存储有属性列表.偏好设置.归档.sqlite.coreData.上一博客了解了沙盒,现在了解下属性列表Plist. 通常通过NSArray.NSDictionary集合类的WriteToFi ...
- 创建自己的共用js库
直至昨晚为止,学习了一个多月的MVC与jQuery,从所做的练习中,发觉jQuery的代码也有跟C#语言一样可以重构,多页面有相同使用的方法函数,均可以放置于一个单独立的js文件或是自定义的js库中. ...
- SQL SERVER TRANSACTION 事物
1.事务的概念 事物是一种机制,是一种操作序列,它包含了数据库一组操作命令,这组命令要么全部执行,要么都不执行.因此事物是一组不可分割的事物逻辑单元,在数据库进行并发操作时候,事物是作为最小的控制单元 ...
- HTML 【表单】
表单在网页中主要负责数据采集功能. 一个表单有三个基本组成部分: 表单标签. 表单域.表单按钮. 表单标签 < form action = " " method = &q ...
- [EWS]查找 文件夹
摘要 有时在操作exchange的时候,需要查找用户exchange文件夹,比如用户新建了一些文件夹. 一个例子 这里以查找用户outlook邮箱中的历史对话文件夹为例. private const ...
- Java JDBC的基础知识(二)
在我的上一篇Java JDBC的基础知识(一)中,最后演示的代码在关闭资源的时候,仅仅用了try/catch语句,这里是有很大的隐患的.在程序创建连接之后,如果不进行关闭,会消耗更多的资源.创建连接之 ...
- Android 7.0 以上保留数据去除锁屏密码的方法
在很多情况下,由于我们的疏忽,导致忘记了锁屏密码.也没有开启 USB 调试,内置存储中还有要保留的数据.我们需要在不清除数据的情况下删除锁屏密码.接下来我们就介绍该如何做. 注意事项 首先要注意,这个 ...
- Java - 线程让步和休眠
Java多线程系列--“基础篇”06之 线程让步 概要 本章,会对Thread中的线程让步方法yield()进行介绍.涉及到的内容包括:1. yield()介绍2. yield()示例3. yield ...