SCrypt對密碼進行加密及密碼驗證

上篇文章scrypt加密passsword 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、運行結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章