架构师训练营第 11 周课后练习
发布于: 2021 年 01 月 02 日
请用你熟悉的编程语言写一个用户密码验证函数,Boolean checkPW(String 用户 ID,String 密码明文,String 密码密文),返回密码是否正确 boolean 值,密码加密算法使用你认为合适的加密算法。
namespace Geektime.PasswordHash
{
using System;
using System.Security.Cryptography;
using System.Text;
class Program
{
static void Main(string[] args)
{
var userId = "1234";
var passwordClearText = "P@ssw0rd";
var passowordHash = "zcTD9O+VRD5KgMK9xgY7jg==";
var isMatch = CheckPassword(userId, passwordClearText, passowordHash);
Console.WriteLine(isMatch);
}
static bool CheckPassword(string userId, string passwordClearText, string passwordHash)
{
var saltedPassword = $"{userId}:{passwordClearText}";
var hashAlgo = HashAlgorithm.Create("MD5");
var rawHash = hashAlgo.ComputeHash(Encoding.UTF8.GetBytes(saltedPassword));
var expectedHash = Convert.ToBase64String(rawHash);
return passwordHash == expectedHash;
}
}
}
复制代码
划线
评论
复制
发布于: 2021 年 01 月 02 日阅读数: 21
菜青虫
关注
还未添加个人签名 2017.11.20 加入
还未添加个人简介
评论