|
本帖最后由 姚俣譞 于 2022-4-5 18:40 编辑
- using Microsoft.Office.Interop.Word;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Security.Cryptography;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApp1
- {
- class Program
- {
- /// <summary>
- /// AES 算法加密(ECB模式) 将明文加密,加密后进行base64编码,返回密文
- /// </summary>
- /// <param name="EncryptStr">明文</param>
- /// <param name="Key">密钥</param>
- /// <returns>加密后base64编码的密文</returns>
- public static string AesEncryptor_Base64(string EncryptStr, string Key)
- {
- try
- {
- //byte[] keyArray = Encoding.UTF8.GetBytes(Key);
- byte[] keyArray = Convert.FromBase64String(Key); //将密钥转化为等效的无符号8位整数数组储存在keyArray中
- byte[] toEncryptArray = Encoding.UTF8.GetBytes(EncryptStr); //将中文转化为8位整数数组储存在toEncryptArray中
- RijndaelManaged rDel = new RijndaelManaged();
- rDel.Key = keyArray; //密钥
- rDel.Mode = CipherMode.ECB; //运算模式
- rDel.Padding = PaddingMode.PKCS7; //填充模式
- Aes aes = Aes.Create();
- aes.GenerateIV();
- aes.GenerateKey();
- ICryptoTransform cTransform = rDel.CreateEncryptor();
- byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
- return Convert.ToBase64String(resultArray, 0, resultArray.Length);
- }
- catch (Exception ex)
- {
- return null;
- }
- }
- /// <summary>
- /// AES 算法解密(ECB模式) 将密文base64解码进行解密,返回明文
- /// </summary>
- /// <param name="DecryptStr">密文</param>
- /// <param name="Key">密钥</param>
- /// <returns>明文</returns>
- public static string AesDecryptor_Base64(string DecryptStr, string Key)
- {
- try
- {
- //byte[] keyArray = Encoding.UTF8.GetBytes(Key);
- byte[] keyArray = Convert.FromBase64String(Key);
- byte[] toEncryptArray = Convert.FromBase64String(DecryptStr);
- RijndaelManaged rDel = new RijndaelManaged();
- rDel.Key = keyArray;
- rDel.Mode = CipherMode.ECB;
- rDel.Padding = PaddingMode.PKCS7;
- ICryptoTransform cTransform = rDel.CreateDecryptor();
- byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
- return Encoding.UTF8.GetString(resultArray);// UTF8Encoding.UTF8.GetString(resultArray);
- }
- catch (Exception ex)
- {
- return null;
- }
- }
- static void Main(string[] args)
- {
- object path; //文件路径变量
- Application app = new Application();//打开word程序
- Document doc = null;//实例化一个新的word文档
- path = @"C:\Users\name\Desktop\rain.docx";
- Object Nothing = Type.Missing;
- doc = app.Documents.Open(ref path,
- ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing,
- ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing,
- ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);
- string str = doc.Content.Text.Trim();
- string str_mi = AesEncryptor_Base64(str, "12345678912345678912345678912345");
- Console.WriteLine("test文档经Aes_Base64加密后密文:\n" + str_mi);
- string str_ming = AesDecryptor_Base64(str_mi, "12345678912345678912345678912345");
- Console.WriteLine("解密上述密文:\n" + str_ming);
- }
- }
- }
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|