zoukankan      html  css  js  c++  java
  • AES加密,解密方法

    加密:

    View Code
    //加密,docPath:要加密的文件路径,strKey:秘钥
    public static void Encrypt(string docPath, string strKey)
    {
        //分组加密算法
        var fs = new FileStream(docPath, FileMode.Open);
        byte[] buffer = new byte[fs.Length];
        fs.Read(buffer, 0, buffer.Length);//得到需要加密的字节数组    
        //设置密钥,密钥向量,两个一样,都是16个byte
        var rDel = new RijndaelManaged();
        var key = Encoding.UTF8.GetBytes(strKey);
        rDel.Key = key;
        rDel.Mode = CipherMode.ECB;
        rDel.Padding = PaddingMode.PKCS7;
        ICryptoTransform cTransform = rDel.CreateEncryptor();
        byte[] cipherBytes = cTransform.TransformFinalBlock(buffer, 0, buffer.Length);
        var fsEncrypt = new FileStream(docPath + "ENC", FileMode.Create, FileAccess.Write);
        fsEncrypt.Write(cipherBytes, 0, cipherBytes.Length);
        fsEncrypt.Close();
        fsEncrypt.Dispose();
        fs.Close();
        fs.Dispose();
    }

    解密:

    View Code
    //解密,fileIn:解密的文件路径,fileOut:解密后的文件存放路径,strKey:秘钥
    public static void Decrypt(string fileIn, string fileOut, string strKey)
    {
        var fsIn = new FileStream(fileIn, FileMode.Open, FileAccess.Read);
        var fsOut = new FileStream(fileOut, FileMode.OpenOrCreate, FileAccess.Write);
        var rDel = new RijndaelManaged();
        var key = Encoding.UTF8.GetBytes(strKey);
        rDel.Key = key;
        rDel.Mode = CipherMode.ECB;
        rDel.Padding = PaddingMode.PKCS7;
        var cs = new CryptoStream(fsOut, rDel.CreateDecryptor(), CryptoStreamMode.Write);
        var bufferLen = 4096;
        var buffer = new byte[bufferLen];
        int bytesRead;
        do
        {
            bytesRead = fsIn.Read(buffer, 0, bufferLen);
            cs.Write(buffer, 0, bytesRead);
        } while (bytesRead != 0);
        cs.Close();
        fsIn.Close();
        fsIn.Dispose();
        fsOut.Dispose();
    }
  • 相关阅读:
    Reaper自定义模板
    c#3.0 特性
    C#中下载文件出现410错误。
    使用Create task with ContentType创建任务的时候,必须先在task list中加上该ContentType
    tsmmc.msc 远程桌面
    工作流的ReplicatorActivity
    关于Windows2003的远程桌面链接数量。
    【手绘】A old painting ,drawed in middle school ,grade 8
    【Notepad++】Notepad ++ plugin Compare
    【资讯】Fight for this goal ,and better than this~
  • 原文地址:https://www.cnblogs.com/Benjamin/p/2987734.html
Copyright © 2011-2022 走看看