SCrypt对密码进行加密及密码验证

Posted 1175429393wljblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SCrypt对密码进行加密及密码验证相关的知识,希望对你有一定的参考价值。

上篇文章scrypt加密password SCrypt对密码进行加密 中使用的是SCrypt,本篇使用SCrypt.Net,其实和SCrypt差不多,只不过是NuGet程序包管理器使用的一个是SCrypt,一个是SCrypt.Net.本文详细介绍SCrypt.Net的使用

1、新建项目ConsoleSCrypt,使用NuGet程序包管理器添加SCrypt.Net

2、Program.cs中添加如下代码:

using System;
using System.Security.Cryptography;

namespace ConsoleSCrypt
{
    class Program
    {
        static void Main(string[] args)
        {
            

            #region SCrypt.Net.SCrypt

            Console.WriteLine("SCrypt.Net.BCrypt");
            Scrypt.ScryptEncoder scrypt = new Scrypt.ScryptEncoder();
            Scrypt.ScryptEncoder scrypt1 = new Scrypt.ScryptEncoder(4, 8, 1);
            Scrypt.ScryptEncoder scrypt2 = new Scrypt.ScryptEncoder(8, 16, 1, RandomNumberGenerator.Create());

            string pwd = "SCrypt明文信息";
            Console.WriteLine($"明文信息:{pwd}");
            string result = scrypt.Encode(pwd);
            Console.WriteLine($"加密以后的密文:{result}");

            //string pwd1 = "SCrypt明文信息111";
            //Console.WriteLine($"明文信息:{pwd1}");
            //string result1 = scrypt1.Encode(pwd1);
            //Console.WriteLine($"加密以后的密文:{result1}");

            //string pwd2 = "SCrypt明文信息222";
            //Console.WriteLine($"明文信息:{pwd2}");
            //string result2 = scrypt2.Encode(pwd2);
            //Console.WriteLine($"加密以后的密文:{result2}");

            bool isValid = scrypt.IsValid(result);
            Console.WriteLine($"加密以后的密文 isvalid:{isValid}");
            bool isMatchpasswordAndpwd= scrypt.Compare("SCrypt明文信息", result);
            Console.WriteLine($"明文信息与加密以后的密文是否一致:{isMatchpasswordAndpwd}");
            #endregion

            Console.ReadLine();
        }
    }
}

 

 

3、运行结果:

技术图片

 

以上是关于SCrypt对密码进行加密及密码验证的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中使用 scrypt 生成密码和盐的哈希值

针对 Scrypt 组合哈希验证 python 密码:(设置+盐+哈希)

使用Bcrypt对密码进行加密与解密验证

sCrypt 合约中的椭圆曲线算法:第二部分

sCrypt 合约中的椭圆曲线算法:第二部分

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段