首页 > 其他分享 >对密码的加密

对密码的加密

时间:2023-08-12 11:45:15浏览次数:25  
标签:加密 string 密码 using salt md5

 

翻阅一开源项目中,发现对密码的相关操作.

最开始 , 一般 用 密码->md5  存储. 后来发现md5可以撞库,后来就有听说腾讯的加密方式是md5 26次,然后反转序列再 md5 2次... (道听途说的)

也有用 密码+固定salt 进行md5的,  还有一种是  动态salt+密码->md5 ,这种就是要多存一个 sal 到数据库.

下面介绍另外一种类似的 

1.生成随机salt

   public static string GenerateSalt()
    {
        // Generate a 128-bit salt using a sequence of cryptographically strong random bytes.
        byte[] salt = RandomNumberGenerator.GetBytes(128 / 8); // divide by 8 to convert bits to bytes
        return Convert.ToBase64String(salt);
    }

 

2.对密码进行加密

 /*需要引入命名空间
 using Microsoft.AspNetCore.Cryptography.KeyDerivation;
 using Microsoft.AspNetCore.Http;*/

    // https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/consumer-apis/password-hashing?view=aspnetcore-6.0
    // This is not secure, but better than nothing.
    public static string HashPassword2(string clearPassword, string saltBase64)
    {
        var salt = Convert.FromBase64String(saltBase64);

        // derive a 256-bit subkey (use HMACSHA256 with 100,000 iterations)
        string hashed = Convert.ToBase64String(KeyDerivation.Pbkdf2(
            password: clearPassword!,
            salt: salt,
            prf: KeyDerivationPrf.HMACSHA256,
            iterationCount: 100000,
            numBytesRequested: 256 / 8));

        return hashed;
    }

 

3.调用示例

string pwd = "admin123.";

string salt = Helper.GenerateSalt();

var hash = Helper.HashPassword2(pwd , salt);

然后把 用户名,salt  和 hash  存在数据里面.

 

标签:加密,string,密码,using,salt,md5
From: https://www.cnblogs.com/mjxxsc/p/17624568.html

相关文章

  • 洛谷 P7739 - [NOI2021] 密码箱
    感觉难度和今年D2T2差不多。首先一个很显然的事情是,每一步得到的分数的分子分母都是互质的,证明参考SBT。而最后答案要求我们将分子分母都求出来而不是求分数值,所以可以很明显的想到将分数当成一个二元组然后维护变换。考虑从右往左扫,假设当前分数为\(\dfrac{x}{y}\),那么扫过......
  • 【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-被黑了,求密码
    前言摩尔斯电码(Morsecode)也被称作摩斯密码,是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。它发明于1837年,是一种早期的数字化通信形式。不同于现代化的数字通讯,摩尔斯电码只使用零和一两种状态的二进制代码,它的代码包括五种:短促的点信号“・......
  • 微软ADRMS权限服务批量加密解密工具,需要可加V:Aixi9837
    ADRMS是一种信息保护技术,可帮助保护数字信息免遭未经授权的使用。通过启用权限的应用程序,内容所有者将能够定义可以对内容进行打开、修改、打印、转发或执行其他操作的人员。该工具可以实现Word、Excel、PowerPoint不同版本文件的加解密处理。支持在原权限基础上增加权限,支持自......
  • 《图解密码技术》读后总结
    十分不耐烦,乃为人大病。内容1、密码学家工具箱:对称密码、公钥密码、单向散列函数、消息认证码、数字签名(证书)、伪随机数,这六类密码技术统称为密码学家工具箱。2、编码、位运算与加解密编码:将现实中的东西映射为比特序列的操作称为编码,编码通常是针对文字及图形符号。例如,......
  • cjt本地账号密码修改脚本
    cjt本地账号密码修改脚本cjt本地账号密码修改sql脚本您好:方法一替换成a123456--查询相关用户的ID账套库执行需要有clouduserid的用户在专属云中才能进入。selectid,CloudUserId,*fromeap_user--对应用户的密码修改成a123456如查询出来的用户ID等于xxx账套执行updateE......
  • 如何修改个人账户的支付密码?流程图来了 转载
    原文链接:https://mp.weixin.qq.com/s/IFxQV8PrgUjE77CIZmBFMw第一步城镇职工参保人可直接登录北京医保公共服务平台或从北京市医疗保障局官网进入北京医保公共服务平台。网址:https://fw.ybj.beijing.gov.cn/hallEnter/#/Index  第二步进入北京医保公共服务平台需先......
  • AES加密 flutter java后台用的 AES/CBC/PKCS5Padding
     可测试AES是否正确的网址https://www.toolhelper.cn/SymmetricEncryption/AES java后台代码如下publicstaticStringencrypt(StringclearText,Stringkey,Stringiv){byte[]result=null;try{byte[]key_bytes=toByte(MD5Util......
  • 域内密码喷洒
    原理:请求包Cname对应的额值是用户名。用户名存在密码正确和密码错误两种情况的asrep返回包不一样。密码喷洒和普通的爆破的区别在于普通爆破利用固定的用户名爆破密码。密码喷洒用于同一个密码爆破不同用户不触发账号锁定策略工具使用kerbrute密码喷洒命令kerbrute_windows......
  • 河南移动H2-3v获取超级密码修改桥接教程
    普通账号登录光猫后台(光猫背面密码) 登录成功后,在网络里面查看当前连接的VLANID值并记录下来,然后直接在浏览器输入:http://192.168.1.1/getpage.gch?pid=1002&nextpage=tele_sec_tserver_t.gch 点击启用Telnet并确定保存 右键密码框点击审查元素 把元素的type="passwo......
  • 投资者静候美国CPI数据!加密市场正处于暴风雨前的宁静?
       目前,投资者似乎不愿意进行激进的押注,因为他们正静候美联储于今晚20:30公布的CPI数据,这份至关重要的通胀报告将影响美国未来加息路径的预期。    如果道琼斯衡量的华尔街共识是正确的,那么受到密切关注的消费者价格指数(CPI)将显示7月份环比上涨0.2%,同比涨幅仅为3.3%。这与......