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 ...
随机推荐
- 在Idea2017.1中编译时发生如下的错误
错误 在Idea2017.1中编译时发生如下的错误 Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8 Information:java: Errors ...
- GNU的编译器
GNU的编译器可以编译C或C++语言, 编译C语言使用gcc,编译C++语言使用g++ 如果是使用Linux或者Unix系统(Mac)可以使用以下命令: gcc -v 或者 g++ -v 来查看是否安 ...
- 并发编程——ConcurrentHashMap#helpTransfer() 分析
前言 ConcurrentHashMap 鬼斧神工,并发添加元素时,如果 map 正在扩容,其他线程甚至于还会帮助扩容,也就是多线程扩容.就这一点,就可以写一篇文章好好讲讲.今天一起来看看. 源码分析 ...
- C# WebApi 中设置Session可用
在Global.acax中,添加下面方法 //设置session可用 public override void Init() { PostAuthenticateRequest += MvcAppli ...
- 50道sql练习题和答案
最近两年的工作没有写过多少SQL,感觉水平下降十分严重,网上找了50道练习题学习和复习 原文地址:50道SQL练习题及答案与详细分析 1.0数据表介绍 --1.学生表 Student(SId,Snam ...
- 无责任Windows Azure SDK .NET开发入门(二):使用Azure AD 进行身份验证
<編者按>本篇为系列文章,带领读者轻松进入Windows Azure SDK .NET开发平台.本文为第二篇,将教导读者使用Azure AD进行身分验证.也推荐读者阅读无责任Windows ...
- 自动生成编号(B开头后跟6位,数据库查询不重复)
private string GetAccountNo() { try { string shortName="B"; "; //查询数据库 7位且包含“B” & ...
- 34.Linux-printk分析、使用__FILE__, __FUNCTION__, __LINE__ 调试
本节学习目的 1)分析printk()函数 2)使用printk()调试驱动 1.在驱动调试中,使用printk(),是最简单,最方便的办法 当uboot的命令行里的“console=tty1”时,表 ...
- Web前端基础——JavaScript
一.脚本程序和 javascrip Javascript脚 本是嵌套在HTML网页中的程序语言,浏览器带有脚本程序的解释器(脚本引擎).脚本也可以有多种,比如还有vbscript, JScrip ...
- Access to XMLHttpRequest at 'XXX' from origin 'XX' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present o AJAX跨域请求解决方法
今天出现了一个问题找了好久先看代码: 这可能是个BUG吧插入代码: dataType: 'jsonp', crossDomain: true, 最终: