/// <summary> /// 生成并返回jwt token /// </summary> /// <returns></returns> public string CreateToken() { string header = Base64Util.Base64Encode(JsonUtil.SerializeObject(Header)); string payload = Base64Util.Base64Encode(JsonUtil.SerializeObject(Payload)); string signature = SHA256.Encrypt(SHA256.Encrypt(header + "." + payload) + secret); return(header + "." + payload + "." + signature); }
public void SHA256EncryptTest() { string input = "Hello World"; string output = BitConverter.ToString(SHA256.Encrypt(input.GetBytes())); string value = "a5-91-a6-d4-0b-f4-20-40-4a-01-17-33-cf-b7-b1-90-d6-2c-65-bf-0b-cd-a3-2b-57-b2-77-d9-ad-9f-14-6e"; Assert.AreEqual(output, value, true); }
/// <summary> /// 加密密码 /// </summary> /// <param name="rawPassword"></param> /// <returns></returns> public static string EncryptPassword(string rawPassword) { if (rawPassword.IsNullOrWhiteSpace()) { return(String.Empty); } string passwordSalt = Guid.NewGuid().ToString("N"); string data = SHA256.Encrypt(rawPassword, passwordSalt); return($"{passwordSalt}|{data}"); }
public static string GeneratePassword(string rawPassword) { if (rawPassword.IsNullOrWhiteSpace()) { return(String.Empty); } string passwordSalt = Guid.NewGuid().ToString("N"); string data = SHA256.Encrypt(rawPassword, passwordSalt); return("{0}|{1}".FormatWith(passwordSalt, data)); }
/// <summary> /// 验证token是否合法 /// </summary> /// <param name="jwtToken"></param> /// <returns></returns> private static bool VerifyToken(string jwtToken) { string[] ts = jwtToken.Split('.'); if (ts.Length == 3) { if (ts[2] == SHA256.Encrypt(SHA256.Encrypt(ts[0] + "." + ts[1]) + secret)) { return(true); } } return(false); }
private static UserInfo CheckPassword(UserInfo userInfo, string password) { string[] splitData = userInfo.Password.Split('|'); if (splitData.Length != 2) { throw new InvalidOperationException("Password and PasswordSalt could not be read from module data"); } string userPasswordSalt = splitData[0]; string userPassword = splitData[1]; return(userPassword == SHA256.Encrypt(password, userPasswordSalt) ? userInfo : null); }
public void SHA1Test() { string str = "Hello world!"; string encrypt = SHA1.Encrypt(str); Console.WriteLine(encrypt); encrypt = SHA256.Encrypt(str); Console.WriteLine(encrypt); encrypt = SHA384.Encrypt(str); Console.WriteLine(encrypt); encrypt = SHA512.Encrypt(str); Console.WriteLine(encrypt); encrypt = MD5.Encrypt(str); Console.WriteLine(encrypt); }
/// <summary> /// VerifyPassword /// </summary> /// <param name="userInfo"></param> /// <param name="password"></param> /// <returns></returns> public static Boolean VerifyPassword(this UserInfo userInfo, string password) { if (userInfo == null || password.IsNullOrWhiteSpace()) { return(false); } if (userInfo.Password.IsNullOrWhiteSpace()) { return(false); } string[] splitData = userInfo.Password.Split('|'); if (splitData.Length != 2) { throw new InvalidOperationException("Password and PasswordSalt could not be read from module data"); } string userPasswordSalt = splitData[0]; string userPassword = splitData[1]; return(userPassword == SHA256.Encrypt(password, userPasswordSalt) ? true : false); }