教学服务系统

 找回密码
 立即注册
搜索
查看: 1012|回复: 1

信息计算2019级2班2号胡莘梅

[复制链接]

10

主题

25

帖子

118

积分

注册会员

Rank: 2

积分
118
发表于 2022-4-5 17:59:05 | 显示全部楼层 |阅读模式
2022/4/5 mooc截图



本帖子中包含更多资源

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

x
回复

使用道具 举报

10

主题

25

帖子

118

积分

注册会员

Rank: 2

积分
118
 楼主| 发表于 2022-4-5 21:26:39 | 显示全部楼层
本帖最后由 信计19-2胡莘梅 于 2022-4-5 21:28 编辑
  1. using System;
  2. using System.Security.Cryptography;
  3. using System.Text;
  4. using Microsoft.Office.Interop.Word;

  5. namespace AES
  6. {
  7.     class Program
  8.     {

  9.         public static string AesEncryptor_Base64(string EncryptStr, string Key)
  10.         {
  11.             try
  12.             {
  13.                 //byte[] keyArray = Encoding.UTF8.GetBytes(Key);
  14.                 byte[] keyArray = Convert.FromBase64String(Key);
  15.                 byte[] toEncryptArray = Encoding.UTF8.GetBytes(EncryptStr);

  16.                 RijndaelManaged rDel = new RijndaelManaged();
  17.                 rDel.Key = keyArray;
  18.                 rDel.Mode = CipherMode.ECB;
  19.                 rDel.Padding = PaddingMode.PKCS7;

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

  22.                 return Convert.ToBase64String(resultArray, 0, resultArray.Length);
  23.             }
  24.             catch (Exception ex)
  25.             {
  26.                 return null;
  27.             }
  28.         }


  29.         public static string AesDecryptor_Base64(string DecryptStr, string Key)
  30.         {
  31.             try
  32.             {
  33.                 //byte[] keyArray = Encoding.UTF8.GetBytes(Key);
  34.                 byte[] keyArray = Convert.FromBase64String(Key);
  35.                 byte[] toEncryptArray = Convert.FromBase64String(DecryptStr);

  36.                 RijndaelManaged rDel = new RijndaelManaged();
  37.                 rDel.Key = keyArray;
  38.                 rDel.Mode = CipherMode.ECB;
  39.                 rDel.Padding = PaddingMode.PKCS7;

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

  42.                 return Encoding.UTF8.GetString(resultArray);//  UTF8Encoding.UTF8.GetString(resultArray);
  43.             }
  44.             catch (Exception ex)
  45.             {
  46.                 return null;
  47.             }
  48.         }


  49.         public static string AesEncryptor_Hex(string str, string key)
  50.         {
  51.             if (string.IsNullOrEmpty(str)) return null;
  52.             Byte[] toEncryptArray = Encoding.UTF8.GetBytes(str);

  53.             System.Security.Cryptography.RijndaelManaged rm = new System.Security.Cryptography.RijndaelManaged
  54.             {
  55.                 Key = StrToHexByte(key),
  56.                 Mode = System.Security.Cryptography.CipherMode.ECB,
  57.                 Padding = System.Security.Cryptography.PaddingMode.PKCS7
  58.             };

  59.             System.Security.Cryptography.ICryptoTransform cTransform = rm.CreateEncryptor();
  60.             Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);

  61.             return ToHexString(resultArray);
  62.         }

  63.         public static string AesDecryptor_Hex(string str, string key)
  64.         {
  65.             if (string.IsNullOrEmpty(str)) return null;
  66.             Byte[] toEncryptArray = StrToHexByte(str);

  67.             System.Security.Cryptography.RijndaelManaged rm = new System.Security.Cryptography.RijndaelManaged
  68.             {
  69.                 Key = StrToHexByte(key),
  70.                 Mode = System.Security.Cryptography.CipherMode.ECB,
  71.                 Padding = System.Security.Cryptography.PaddingMode.PKCS7
  72.             };

  73.             System.Security.Cryptography.ICryptoTransform cTransform = rm.CreateDecryptor();
  74.             Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);

  75.             return Encoding.UTF8.GetString(resultArray);
  76.         }

  77.         public static string ToHexString(byte[] bytes) // 0xae00cf => "AE00CF "
  78.         {
  79.             string hexString = string.Empty;
  80.             if (bytes != null)
  81.             {
  82.                 StringBuilder strB = new StringBuilder();
  83.                 for (int i = 0; i < bytes.Length; i++)
  84.                 {
  85.                     strB.Append(bytes[i].ToString("X2"));
  86.                 }
  87.                 hexString = strB.ToString();
  88.             }
  89.             return hexString;
  90.         }

  91.         public static byte[] StrToHexByte(string hexString)
  92.         {
  93.             hexString = hexString.Replace(" ", "");
  94.             if ((hexString.Length % 2) != 0)
  95.                 hexString += " ";
  96.             byte[] returnBytes = new byte[hexString.Length / 2];
  97.             for (int i = 0; i < returnBytes.Length; i++)
  98.                 returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
  99.             return returnBytes;
  100.         }

  101.         static void Main(string[] args)
  102.         {
  103.             Microsoft.Office.Interop.Word.Application A = new Microsoft.Office.Interop.Word.Application();//打开word程序
  104.             Document docx = null;
  105.             object unknow = Type.Missing;
  106.             A.Visible = true;
  107.             object paramSourceDocPath = @"C:\Users\Lune\Desktop\泡面.docx";
  108.             docx = A.Documents.Open(ref paramSourceDocPath,
  109.                   ref unknow, ref unknow, ref unknow, ref unknow, ref unknow,
  110.                   ref unknow, ref unknow, ref unknow, ref unknow, ref unknow,
  111.                   ref unknow, ref unknow, ref unknow, ref unknow, ref unknow);
  112.             string str = docx.Content.Text.Trim();

  113.             string str1 = AesEncryptor_Base64(str, "7645546321654321bac7534567446654");
  114.             Console.WriteLine("Base64加密:\n" + str1);

  115.             string str2 = AesDecryptor_Base64(str1, "7645546321654321bac7534567446654");
  116.             Console.WriteLine("\nBase64解密:\n" + str2);

  117.             string str3 = AesEncryptor_Hex(str, "361250043850abc46746243098546756");
  118.             Console.WriteLine("\nHex加密:\n" + str3);

  119.             string str4 = AesDecryptor_Hex(str3, "361250043850abc46746243098546756");
  120.             Console.WriteLine("\nHex解密:\n" + str4);
  121.         }
  122.     }
  123. }
复制代码

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

教学服务系统

GMT+8, 2025-5-6 12:41 , Processed in 0.020429 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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