首页 新闻 会员 周边

C#如何实现透明加密

0
悬赏园豆:100 [待解决问题]

需求是公司想开发一个加密软件 目前用的绿盾 局限性比较大 规则不能自己设定,有没有类似经验的大佬

Dear Fei的主页 Dear Fei | 初学一级 | 园豆:102
提问于:2023-02-21 14:18
< >
分享
所有回答(3)
0

using System;
using System.IO;
using System.Security.Cryptography;

public static class EncryptionHelper
{
private static byte[] key = new byte[32]; // 生成一个32字节的随机密钥
private static byte[] iv = new byte[16]; // 生成一个16字节的随机向量

public static byte[] Encrypt(byte[] data)
{
    using (Aes aes = Aes.Create())
    {
        aes.Key = key;
        aes.IV = iv;

        // 创建加密器并加密数据
        ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV);
        using (MemoryStream msEncrypt = new MemoryStream())
        {
            using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
            {
                csEncrypt.Write(data, 0, data.Length);
            }
            return msEncrypt.ToArray();
        }
    }
}

public static byte[] Decrypt(byte[] data)
{
    using (Aes aes = Aes.Create())
    {
        aes.Key = key;
        aes.IV = iv;

        // 创建解密器并解密数据
        ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);
        using (MemoryStream msDecrypt = new MemoryStream(data))
        {
            using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
            {
                byte[] buffer = new byte[data.Length];
                csDecrypt.Read(buffer, 0, buffer.Length);
                return buffer;
            }
        }
    }
}

}

寂寞和挑战就是人生 | 园豆:202 (菜鸟二级) | 2023-02-22 10:51
0

绿盾?

和这个功能差不多的软件,可不是一两个人搞得定的,研发成本很高的!毕竟国内好几家公司就是靠开发、销售这种软件吃饭的。如果研发成本不高,难度不大,风险不高,这种软件早就烂大街了

看你的描述,似乎是公司自己用的,没打算开发成产品去卖。

背锅狼 | 园豆:62 (初学一级) | 2023-02-23 17:12
0

如果是个demo,可能很快;如果要做个可靠的软件,这个不是十天半个月可以做出来的。

Arthurian | 园豆:1123 (小虾三级) | 2023-03-29 22:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册