MD5加密以及验证加密-加盐
加密与解密算法:
/// <summary>
/// 签名字符串 32位
/// </summary>
/// <param name="input">要加密的字符串</param>
/// <param name="Key">加盐值</param>
/// <returns></returns>
public static string Sign(string prestr, string Key)
{
System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create();
prestr = prestr + Key;
byte[] data = md5.ComputeHash(System.Text.Encoding.Default.GetBytes(prestr));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sb.Append(data[i].ToString("x2"));
}
return sb.ToString();
} /// <summary>
/// 验证签名
/// </summary>
/// <param name="prestr">需要签名的字符串</param>
/// <param name="sign">签名结果(MD5加密过后的字符串)</param>
/// <param name="key">密钥</param>
/// <param name="_input_charset">编码格式</param>
/// <returns>验证结果</returns>
public static bool Verify(string prestr, string sign, string key)
{
string mysign = Sign(prestr, key);
if (mysign == sign)
{
return true;
}
else
{
return false;
}
}
控制台调用:
static void Main(string[] args)
{
//密钥
string Key = ",.huangfu/?"; //原始密码
string Prestr = "huangfu"; //显示密钥与原始密码
Console.WriteLine("原始密码:"+Prestr+"\n密钥是:"+Key); //加密原始密码
string MD5Prestr = MD5.Sign(Prestr, Key); //输出加密过后的密码
Console.WriteLine("经过MD5加密过后的字符串:" + MD5Prestr); //提示输入密码
Console.WriteLine("请输入密码:");
string PassWord = Convert.ToString(Console.ReadLine()); //判断所输入密码是否与原始密码相同
if (MD5.Verify(PassWord, MD5Prestr, Key))
Console.WriteLine("密码正确!");
else
Console.WriteLine("密码错误!"); Console.ReadKey();
}
输出结果:

MD5加密以及验证加密-加盐的更多相关文章
- hashlib模块-加密的模块,加盐
1.MD5加密 md5加密是不可逆的 print(dir(m)) #把变量的方法打印出来 hashlib.md5:加密xx.hexdigest():返回密文xx.encode:将字符串转成二进制的,转 ...
- php实现图片加密解密,支持加盐
一个简单的图片加解密函数 使用client跑,不要使用浏览器跑 qq845875470 ,技术交流 <?php /** * Created by hello. * User: qq 845875 ...
- MD5加密+加盐
了解: MD5加密,是属于不可逆的.我们知道正常使用MD5加密技术,同一字符,加密后的16进制数是不变的,自从出现彩虹表,对于公司内部员工来说,可以反查数据,获取不可能的权限,所以出现了salt算法. ...
- (转)浅谈MD5加密算法中的加盐值(SALT)
我们知道,如果直接对密码进行散列,那么黑客可以对通过获得这个密码散列值,然后通过查散列值字典(例如MD5密码破解网站),得到某用户的密码. 加Salt可以一定程度上解决这一问题.所谓加Salt方法,就 ...
- Web应用你加盐了吗?——浅谈MD5加密算法中的加盐值(SALT)
转自:http://blog.csdn.net/blade2001/article/details/6341078 我们知道,如果直接对密码进行散列,那么黑客可以对通过获得这个密码散列值,然后通过查散 ...
- (转,学习记录)MD5加密算法中的加盐值(SALT)
我们知道,如果直接对密码进行散列,那么黑客可以对通过获得这个密码散列值,然后通过查散列值字典(例如MD5密码破解网站),得到某用户的密码. 加Salt可以一定程度上解决这一问题.所谓加Salt方法,就 ...
- MD5 加盐(Java)
本文转载自:https://blog.csdn.net/dingsai88/article/details/51637977 jar:https://pan.baidu.com/s/1-8JaRoUt ...
- 一种简单的md5加盐加密的方法(防止彩虹表撞库)
md5加密(或者说摘要算法)大家都很熟悉了 就不解释了 现在很多数据库设计都喜欢用单向加密的方式保存密码,验证时对提交的密码再次加密之后做密文对比 /// <summary> 使用MD5加 ...
- MD5 加密 以及 加盐加密
这是MD5加密 - (NSString *)MD5Hash { const char *cStr = [self UTF8String]; unsigned char result[16]; CC_M ...
随机推荐
- 版本管理工具:linux下svn的基本使用
参考: linux下安装SVN http://jingyan.baidu.com/article/3c343ff7039de20d37796306.html svn客户端使用linux篇 ht ...
- BZOJ 2157: 旅游( 树链剖分 )
树链剖分.. 样例太大了根本没法调...顺便把数据生成器放上来 -------------------------------------------------------------------- ...
- Hbuilder主页面控制子页面的方法
主页面的写法 (function($, doc) { mui.init({ swipeBack : false, ...
- 一个开源Delphi分类组件推荐网页
https://github.com/Fr0sT-Brutal/awesome-delphi
- c语言‘\0’ ,‘0’, “0” ,0之间的区别
首先比较一下‘\0’和‘0’的区别.有一个共同点就是它们都是字符,在c语言中,字符是按其所对应的ASCII码来存储的,一个字符占一个字节.请翻开你的ASCII字符集表吧,一般在你的C语言教材的附录上, ...
- 使用webservice实现App与服务器端数据交互
What? webservice曾经认为是解决异构系统间整合的最佳解决方案,不依赖于第三方任何系统的支持(不需要部署RDBMS服务器),大家只需要按照官方的规范,即可完成相互之间的数据交互. Why? ...
- BZOJ 3367: [Usaco2004 Feb]The Big Game 球赛( dp )
dp(i)表示前i个人最少坐多少辆车, dp(i) = min(dp(j) + 1, dp(i)) (0 <= j < i 且 (i, j]的人能坐在一辆车上) 时间复杂度O(n²) -- ...
- 我的Python成长之路---第一天---Python基础(3)---2015年12月26日(雾霾)
四.变量和常量 变量是用来存储程序运行期间需要临时保存可以不断改变的数据的标识符.Python有自身的内存回收机制,所以在开发过程中不用考虑变量的销毁等 Python中的变量名命名有如下规则: 1.变 ...
- 一天一个类,一点也不累 之 Set接口
我们的口号是:一天一个类,一点也不累-- 再次回忆一下集合相关的类图. 官方API上这样介绍这个接口: A collection that contains no duplicate elements ...
- 12 - 多线程、执行队列、GCD
一.多线程 进程:一个应用程序配套一个进程,进程会加载应用程序的资源,进程是放代码的,一个进程默认是一个线程(主线程),可以有多个线程 线程:执行代码的是线程,一个线程同时只能读取一段代码 栈里的变量 ...