Common/Security.cs
(开头部分) 12KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Text;
using System.IO;
using System.Security.Cryptography;
using System.Globalization;
namespace Common
{
/// <summary>
/// -----------------------------------<BR>
/// Security 的摘要说明。<BR>
/// 安全处理方法类,主要对字符串进行加密和解密。<BR>
/// -----------------------------------<BR>
/// </summary>
public class Security
{
private const int m_saltLength = 4;
private const int SaltValue = 7;
/// <summary>
/// 通过对字符串进行散列和Salt运算,进行加密。
/// </summary>
/// <param name="cleanString">传入的字符串。</param>
/// <returns>返回加密后的字符串。</returns>
public static string Encrypt(string cleanString)
{
Byte[] saltValue = new Byte[m_saltLength];
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
rng.GetBytes(saltValue);
//Create the salted hash
SHA1 sha1 = SHA1.Create();
byte[] saltedString = sha1.ComputeHash(saltValue);
// add the salt value to the salted hash
byte[] retString = new byte[saltedString.Length + saltValue.Length];
saltedString.CopyTo(retString, 0);
saltValue.CopyTo(retString, saltedString.Length);
return BitConverter.ToString(retString);
}
/// <summary>
/// 对未经过加密的字符串和通过散列和Salt运算加密的字符串进行比较。
/// </summary>
/// <param name="cleanString">原字符串</param>
/// <param name="encryptedString">加密后的字符串</param>
/// <returns></returns>
public static bool Compare(string cleanString, string encryptedString)
{
if (cleanString == "" && encryptedString == "")
return true;
if (cleanString == "" || encryptedString == "" || cleanString.Length != encryptedString.Length - m_saltLength)
return false;
string resultString = Encrypt(cleanString);
return resultString == encryptedString;
后面还有 247 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。