教学服务系统

 找回密码
 立即注册
搜索
查看: 554|回复: 0

信息计算2019级1班23号姚俣譞

[复制链接]

12

主题

17

帖子

82

积分

注册会员

Rank: 2

积分
82
发表于 2022-4-5 16:31:05 | 显示全部楼层 |阅读模式
本帖最后由 姚俣譞 于 2022-4-5 18:40 编辑

  1. using Microsoft.Office.Interop.Word;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Security.Cryptography;
  6. using System.Text;
  7. using System.Threading.Tasks;

  8. namespace ConsoleApp1
  9. {
  10.   class Program
  11.     {
  12.         /// <summary>
  13.         /// AES 算法加密(ECB模式) 将明文加密,加密后进行base64编码,返回密文
  14.         /// </summary>
  15.         /// <param name="EncryptStr">明文</param>
  16.         /// <param name="Key">密钥</param>
  17.         /// <returns>加密后base64编码的密文</returns>
  18.         public static string AesEncryptor_Base64(string EncryptStr, string Key)
  19.         {
  20.             try
  21.             {
  22.                 //byte[] keyArray = Encoding.UTF8.GetBytes(Key);
  23.                 byte[] keyArray = Convert.FromBase64String(Key);    //将密钥转化为等效的无符号8位整数数组储存在keyArray中
  24.                 byte[] toEncryptArray = Encoding.UTF8.GetBytes(EncryptStr); //将中文转化为8位整数数组储存在toEncryptArray中

  25.                 RijndaelManaged rDel = new RijndaelManaged();
  26.                 rDel.Key = keyArray;                //密钥
  27.                 rDel.Mode = CipherMode.ECB;         //运算模式
  28.                 rDel.Padding = PaddingMode.PKCS7;   //填充模式

  29.                 Aes aes = Aes.Create();
  30.                 aes.GenerateIV();
  31.                 aes.GenerateKey();


  32.                 ICryptoTransform cTransform = rDel.CreateEncryptor();
  33.                 byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);

  34.                 return Convert.ToBase64String(resultArray, 0, resultArray.Length);
  35.             }
  36.             catch (Exception ex)
  37.             {
  38.                 return null;
  39.             }
  40.         }

  41.         /// <summary>
  42.         /// AES 算法解密(ECB模式) 将密文base64解码进行解密,返回明文
  43.         /// </summary>
  44.         /// <param name="DecryptStr">密文</param>
  45.         /// <param name="Key">密钥</param>
  46.         /// <returns>明文</returns>
  47.         public static string AesDecryptor_Base64(string DecryptStr, string Key)
  48.         {
  49.             try
  50.             {
  51.                 //byte[] keyArray = Encoding.UTF8.GetBytes(Key);
  52.                 byte[] keyArray = Convert.FromBase64String(Key);
  53.                 byte[] toEncryptArray = Convert.FromBase64String(DecryptStr);

  54.                 RijndaelManaged rDel = new RijndaelManaged();
  55.                 rDel.Key = keyArray;
  56.                 rDel.Mode = CipherMode.ECB;
  57.                 rDel.Padding = PaddingMode.PKCS7;

  58.                 ICryptoTransform cTransform = rDel.CreateDecryptor();
  59.                 byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);

  60.                 return Encoding.UTF8.GetString(resultArray);//  UTF8Encoding.UTF8.GetString(resultArray);
  61.             }
  62.             catch (Exception ex)
  63.             {
  64.                 return null;
  65.             }
  66.         }

  67.         static void Main(string[] args)
  68.         {
  69.             object path;                              //文件路径变量
  70.             Application app = new Application();//打开word程序
  71.             Document doc = null;//实例化一个新的word文档
  72.             path = @"C:\Users\name\Desktop\rain.docx";
  73.             Object Nothing = Type.Missing;
  74.             doc = app.Documents.Open(ref path,
  75.                                 ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing,
  76.                                 ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing,
  77.                                 ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);
  78.             string str = doc.Content.Text.Trim();

  79.             string str_mi = AesEncryptor_Base64(str, "12345678912345678912345678912345");
  80.             Console.WriteLine("test文档经Aes_Base64加密后密文:\n" + str_mi);
  81.             string str_ming = AesDecryptor_Base64(str_mi, "12345678912345678912345678912345");
  82.             Console.WriteLine("解密上述密文:\n" + str_ming);
  83.         }
  84.     }
  85. }
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

教学服务系统

GMT+8, 2025-4-30 07:45 , Processed in 0.020642 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表