每次新建账号密码的时候都需要获取一下新的盐码,之后用使用MD5为用户密码加密

        /// <summary>
/// 获取新的密码盐码
/// </summary>
/// <returns></returns>
public static string GetPasswordSalt()
{
var salt = new byte[/];
using (var saltnum = RandomNumberGenerator.Create())
{
saltnum.GetBytes(salt);
}
return Convert.ToBase64String(salt);
}
/// <summary>
/// 获取根据盐码加密的密码
/// </summary>
/// <param name="password">原密码</param>
/// <param name="salt">盐码</param>
/// <returns></returns>
public static string GenEncodingPassword(string password
,string salt)
{
MD5 md5 = MD5.Create();
byte[] bs = Encoding.UTF8.GetBytes(password+salt);
byte[] hs = md5.ComputeHash(bs);
StringBuilder strb = new StringBuilder();
foreach (byte item in hs)
{
strb.Append(item.ToString("x2"));
}
return strb.ToString();
}

注意:由于MD5是不可逆的,所以加密之后就无法解密,在每次登录的时候,都需要查询一下账号对应的盐码是多少,之后密码盐码加密,再与数据库中保存的密码来对比(数据库保存的密码是盐码加密之后的)。如果比对结果一致,则可以判定登陆成功!所以要在数据库中添加一个盐码的字段。

C# 密码盐码加密的更多相关文章

  1. shiro密码的比对,密码的MD5加密,MD5盐值加密,多个Relme

    有具体问题的可以参考之前的关于shiro的博文,关于shiro的博文均是一次工程的内容 密码的比对   通过AuthenticatingRealm的CredentialsMatcher方法 密码的加密 ...

  2. MD5加密 及获得密码盐

    MD5加密 及获得密码盐 using System; using System.Collections.Generic; using System.Configuration; using Syste ...

  3. 数据库存储安全之(MD5+盐)加密

    一般系统数据库密码加密方式: MD5后存入数据库 SHA1 Hash后存入数据库 缺点:黑客可以通过密码暴力破解获取密码信息,具体做法是将常用密码进行Hash后做成一个字典, 破解的时候,只需要查字典 ...

  4. centos单用户模式:修改ROOT密码和grub加密

    centos单用户模式:修改ROOT密码和grub加密 CentOSLinux网络应用配置管理应用服务器  Linux 系统处于正常状态时,服务器主机开机(或重新启动)后,能够由系统引导器程序自动引导 ...

  5. Spring Security中的MD5盐值加密

    在 spring Security 文档中有这么一句话: "盐值的原理非常简单,就是先把密码和盐值指定的内容合并在一起,再使用md5对合并后的内容进行演算,这样一来,就算密码是一个很常见的字 ...

  6. shiro盐值加密并验证

    在数据表中存的密码不应该是123456,而应该是123456加密之后的字符串,而且还要求这个加密算法是不可逆的,即由加密后的字符串不能反推回来原来的密码,如果能反推回来那这个加密是没有意义的.著名的加 ...

  7. .NetCore 登录(密码盐+随机数)

    一.理论部分 1.为什么要给密码加盐 我们在数据库中存入的密码一般不会是明文,都要通加MD5加密后存入,但是有些简单的密码加密后存入数据库也不安全,所有我们采用密码+盐再进行MD5加密存入数据库中. ...

  8. SpringBoot整合shiro-MD5盐值加密

    为什么要进行密码加密? 在我们的日常生活中,许多人有着在不同网站上使用相同密码的坏习惯(包括我也是qaq),假如应用程序或服务器出现漏洞,数据被窃取,用户的明文密码直接被暴露给黑客.显然后果将不堪设想 ...

  9. Python解析器源码加密系列之(二):一次使用标准c的FILE*访问内存块的尝试

    摘要:由于近期打算修改Python解释器以实现pyc文件的加密/解密,出于保密的要求,解密之后的数据只能放在内存中,不能写入到文件中.但是后续的解析pyc文件的代码又只能接受FILE*作为入参,所以就 ...

随机推荐

  1. Mysql数据库账户权限设置

    1.修改mysql数据库的root密码: 修改 数据库.表名 SET password=加密(‘密码’) where user=’root’; UPDATE mysql.user SET passwo ...

  2. scrapy输出的json文件中显示中文

    scrapy用-o filename.json 输出时,会默认使用unicode编码,当内容为中文时,输出的json文件不便于查看,如下图: 可以在setting.py文件中修改默认的输出编码方式,只 ...

  3. PKU《程序设计》专项课程_递归汉诺塔问题

    取自coursera.org上公开课北京大学<C程序设计进阶> 递归调用注意的点 1.关注点放在求解的目标上,递推是,目标放在开头 2.找到第N次和第(N-1)次之间的关系,通项公式 3. ...

  4. hdu 1518 BFS

    Given a set of sticks of various lengths, is it possible to join them end-to-end to form a square? I ...

  5. BInsertSort

    #include <bits/stdc++.h> using namespace std; #define MAXSIZE 200000 typedef int KeyType; type ...

  6. 第一次博客作业(初识C++)

    Q1:学习<C++语言程序设计>课程之前,你知道什么是编程吗?谈谈上这门课之前你对编程的理解,以及你对自己编程能力的评估. A1:开始课程之前,我认为编程是这样的:用计算机的语言写一份流程 ...

  7. 《python for data analysis》第四章,numpy的基本使用

    <利用python进行数据分析>第四章的程序,介绍了numpy的基本使用方法.(第三章为Ipython的基本使用) 科学计算.常用函数.数组处理.线性代数运算.随机模块…… # -*- c ...

  8. Ubuntu安装ssh 与samba

    1.安装ssh服务 sudo apt-get install openssh-server 2.开启ssh(/etc/init.d文件夹) sudo service ssh start 2.安装sam ...

  9. orchestrator HTTP接口forget-cluster误下线集群问题

    orchestrator 提供了"forget-cluster"HTTP接口用于下线集群.该接口可以根据提供的参数,推测可能的集群名cluster name,然后使用cluster ...

  10. 当鼠标经过表格数据行时颜色不同且奇偶行颜色也不同 (纯CSS)

    <!DOCTYPE html> <!-- To change this license header, choose License Headers in Project Prope ...