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 算力,解读结果公开显示在下面。

还没有人解读过这个文件。