最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#根據(jù)時(shí)間加密和防止反編譯的兩種方案

 更新時(shí)間:2026年01月12日 09:02:59   作者:工業(yè)程序猿老趙  
文章介紹了兩種C#時(shí)間加密方法(時(shí)間戳+AES加密和時(shí)間校驗(yàn)加密)以及防反編譯步驟(代碼混淆和加殼保護(hù)),并強(qiáng)調(diào)了時(shí)間加密使用UTC時(shí)間和混淆與加殼的重要性,需要的朋友可以參考下

時(shí)間加密 = 用當(dāng)前時(shí)間做密鑰 / 校驗(yàn),防反編譯 = 混淆 + 加殼,配套用)

一、C# 時(shí)間加密 2 種核心實(shí)現(xiàn)(直接用)

都是可直接運(yùn)行的完整代碼,適合做注冊(cè)驗(yàn)證、臨時(shí)授權(quán)

方案 1:時(shí)間戳 + AES 加密(最常用,可逆)

核心:用當(dāng)前時(shí)間戳做密鑰因子,加密字符串,解密時(shí)校驗(yàn)時(shí)間有效性

using System;
using System.Security.Cryptography;
using System.Text;
 
public class TimeAesEncrypt
{
    // 時(shí)間加密核心:時(shí)間戳+固定密鑰混合做密鑰
    private static string GetKeyByTime()
    {
        // 取當(dāng)前時(shí)間戳(精確到分鐘,防止秒級(jí)變動(dòng)解密失?。?
        long timestamp = DateTime.Now.ToUniversalTime().Ticks / 10000000 / 60;
        return MD5.HashData(Encoding.UTF8.GetBytes("固定密鑰" + timestamp)).ToHexString().Substring(0, 16);
    }
 
    // 加密(帶時(shí)間因子)
    public static string Encrypt(string content)
    {
        using Aes aes = Aes.Create();
        aes.Key = Encoding.UTF8.GetBytes(GetKeyByTime());
        aes.IV = Encoding.UTF8.GetBytes("1234567812345678");//固定IV(可改)
        ICryptoTransform encryptor = aes.CreateEncryptor();
        byte[] bytes = Encoding.UTF8.GetBytes(content);
        return Convert.ToBase64String(encryptor.TransformFinalBlock(bytes, 0, bytes.Length));
    }
 
    // 解密(5分鐘內(nèi)有效,超時(shí)失效)
    public static string Decrypt(string cipherText)
    {
        // 校驗(yàn)5分鐘內(nèi)的時(shí)間戳,兼容時(shí)間誤差
        for (int i = 0; i <= 5; i++)
        {
            try
            {
                long timestamp = (DateTime.Now.ToUniversalTime().Ticks / 10000000 / 60) - i;
                string key = MD5.HashData(Encoding.UTF8.GetBytes("固定密鑰" + timestamp)).ToHexString().Substring(0, 16);
                using Aes aes = Aes.Create();
                aes.Key = Encoding.UTF8.GetBytes(key);
                aes.IV = Encoding.UTF8.GetBytes("1234567812345678");
                ICryptoTransform decryptor = aes.CreateDecryptor();
                byte[] bytes = Convert.FromBase64String(cipherText);
                return Encoding.UTF8.GetString(decryptor.TransformFinalBlock(bytes, 0, bytes.Length));
            }
            catch { continue; }
        }
        throw new Exception("加密超時(shí)或內(nèi)容無效");
    }
}

方案 2:時(shí)間校驗(yàn)加密(不可逆,適合授權(quán)驗(yàn)證)

核心:加密內(nèi)容綁定有效期,解密時(shí)先驗(yàn)時(shí)間,再驗(yàn)內(nèi)容,防篡改

// 授權(quán)碼生成:比如生成7天有效期的授權(quán)碼
public static string CreateTimeAuthCode(string userId)
{
    DateTime expireTime = DateTime.Now.AddDays(7);
    string content = $"{userId}_{expireTime:yyyyMMddHHmmss}";
    // 加鹽MD5(不可逆,驗(yàn)證時(shí)重新計(jì)算比對(duì))
    return MD5.HashData(Encoding.UTF8.GetBytes(content + "加鹽字符串")).ToHexString();
}
 
// 驗(yàn)證授權(quán)碼有效性
public static bool VerifyTimeAuthCode(string userId, string authCode)
{
    string content = $"{userId}_{DateTime.Now:yyyyMMddHHmmss}";
    string checkCode = MD5.HashData(Encoding.UTF8.GetBytes(content + "加鹽字符串")).ToHexString();
    if (checkCode == authCode) return true;
    // 補(bǔ)全有效期內(nèi)校驗(yàn)邏輯(略)
    return false;
}

二、C# 防反編譯(2 個(gè)關(guān)鍵步驟,必做)

C# 程序(.exe/.dll)默認(rèn)極易被反編譯(dnSpy 直接看源碼),2 步搞定防反編譯,工業(yè)級(jí)實(shí)用

步驟 1:代碼混淆(基礎(chǔ)防反編譯,必加)

推薦 2 個(gè)工具,不用寫代碼,直接處理文件? 免費(fèi)工具:ConfuserEx(開源,夠用)

  1. 下載 ConfuserEx,添加你的 C# 程序集(.exe/.dll)
  2. 混淆規(guī)則選:anti debug+anti tamper+rename+obfuscate
  3. 點(diǎn)擊 Protect,生成混淆后的程序(反編譯后是亂碼,看不了邏輯)

商用工具:SmartAssembly(更強(qiáng),防 dnSpy)直接勾選:字符串加密 + 控制流混淆 + 資源加密,一鍵生成,適合生產(chǎn)環(huán)境

步驟 2:加殼保護(hù)(進(jìn)階,防脫殼,工業(yè)級(jí))

混淆后再加殼,雙重防護(hù),防止被脫混淆推薦工具:

  1. Themida:對(duì) C# 程序加殼,防內(nèi)存 dump、防調(diào)試,效果最好
  2. 免費(fèi)替代:Enigma Virtual Box(基礎(chǔ)加殼,防簡(jiǎn)單脫殼)

三、關(guān)鍵注意事項(xiàng)(避坑)

  1. 時(shí)間加密別直接用本地時(shí)間!用 UTC 時(shí)間(DateTime.Now.ToUniversalTime ()),防止用戶改系統(tǒng)時(shí)間繞過
  2. 防反編譯必做 2 點(diǎn):混淆(改亂代碼)+ 加殼(防脫),缺一不可
  3. 生產(chǎn)環(huán)境:AES 密鑰別寫死代碼里,可放配置文件加密存儲(chǔ),或從硬件信息讀取

到此這篇關(guān)于C#根據(jù)時(shí)間加密和防止反編譯的兩種方案的文章就介紹到這了,更多相關(guān)C#根據(jù)時(shí)間加密和防反編譯內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何隨機(jī)選取一個(gè)機(jī)器的ip

    如何隨機(jī)選取一個(gè)機(jī)器的ip

    此方法可用于當(dāng)需要負(fù)載均衡時(shí),即想選擇多臺(tái)機(jī)器來處理程序執(zhí)行。 隨機(jī)的選擇一臺(tái)機(jī)器來處理。
    2013-03-03
  • 利用C#實(shí)現(xiàn)分布式數(shù)據(jù)庫查詢

    利用C#實(shí)現(xiàn)分布式數(shù)據(jù)庫查詢

    利用C#實(shí)現(xiàn)分布式數(shù)據(jù)庫查詢...
    2007-03-03
  • 基于WPF實(shí)現(xiàn)帶蒙版的MessageBox消息提示框

    基于WPF實(shí)現(xiàn)帶蒙版的MessageBox消息提示框

    這篇文章主要介紹了如何利用WPF實(shí)現(xiàn)帶蒙版的MessageBox消息提示框,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下
    2022-08-08
  • C#的四種基本數(shù)據(jù)類型

    C#的四種基本數(shù)據(jù)類型

    本文主要介紹了C#的四種基本數(shù)據(jù)類型的相關(guān)知識(shí),具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-03-03
  • C#實(shí)現(xiàn)一個(gè)簡(jiǎn)單實(shí)用的TXT文本操作及日志框架詳解

    C#實(shí)現(xiàn)一個(gè)簡(jiǎn)單實(shí)用的TXT文本操作及日志框架詳解

    這篇文章主要給大家介紹了關(guān)于利用C#如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單實(shí)用的TXT文本操作及日志框架的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們一起來看看吧
    2018-07-07
  • Unity如何獲取Texture內(nèi)存大小方法詳解

    Unity如何獲取Texture內(nèi)存大小方法詳解

    這篇文章主要為大家介紹了Unity如何獲取Texture內(nèi)存大小方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • C#集合之并發(fā)集合的用法

    C#集合之并發(fā)集合的用法

    這篇文章介紹了C#集合之并發(fā)集合的用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • C#雙緩沖技術(shù)實(shí)例詳解

    C#雙緩沖技術(shù)實(shí)例詳解

    這篇文章主要介紹了C#雙緩沖技術(shù),結(jié)合實(shí)例形式較為詳細(xì)的分析了C#雙緩沖的功能,實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2016-02-02
  • 一起詳細(xì)聊聊C#中的Visitor模式

    一起詳細(xì)聊聊C#中的Visitor模式

    Visitor模式表示一個(gè)作用于某對(duì)象結(jié)構(gòu)中的各元素的操作,下面這篇文章主要給大家介紹了關(guān)于C#中Visitor模式的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • 利用WPF實(shí)現(xiàn)系統(tǒng)資源監(jiān)控的完整代碼

    利用WPF實(shí)現(xiàn)系統(tǒng)資源監(jiān)控的完整代碼

    在現(xiàn)代軟件開發(fā)中,系統(tǒng)資源監(jiān)控是系統(tǒng)管理、性能分析和故障診斷的重要工具,WPF是構(gòu)建現(xiàn)代化、美觀實(shí)用的系統(tǒng)監(jiān)控應(yīng)用的理想選擇,本文將詳細(xì)介紹如何使用WPF創(chuàng)建一個(gè)功能全面的系統(tǒng)資源監(jiān)控儀表盤,需要的朋友可以參考下
    2026-01-01

最新評(píng)論

右玉县| 井陉县| 高淳县| 汤阴县| 岗巴县| 清镇市| 上栗县| 冀州市| 彰化市| 阳春市| 依兰县| 屏边| 禄劝| 汉寿县| 朔州市| 防城港市| 白朗县| 休宁县| 台南县| 江永县| 东乌珠穆沁旗| 朔州市| 苍山县| 闵行区| 华蓥市| 铁岭市| 平遥县| 祁阳县| 阿合奇县| 徐闻县| 晋城| 招远市| 边坝县| 卓资县| 烟台市| 邛崃市| 晋宁县| 英吉沙县| 侯马市| 三门县| 寻乌县|