当前位置: 首页 > news >正文

aes c# java_AES加密,C#和java相同

///

///用种子获取密钥字节///

/// 密钥种子

/// 编码格式

/// 密钥长度(一般为16,不清楚时不要随意动)

///

public static byte[] GetKeyBySeed(string strKey, Encoding encoding, int nLen = 16)

{byte[] bySeed =encoding.GetBytes(strKey);byte[] byKeyArray = null;using (var st = newSHA1CryptoServiceProvider())

{using (var nd = newSHA1CryptoServiceProvider())

{var rd =nd.ComputeHash(st.ComputeHash(bySeed));

byKeyArray=rd.Take(nLen).ToArray();

}

}returnbyKeyArray;

}///

///加密 参数:string///

/// 加密内容

/// 密钥字节数组

/// 向量(注意目前只研究支持16位长度)

/// 编码方式

/// string:密文

public static string Encrypt(string strCon, byte[] byteKey, Encoding encoding)

{try{if (string.IsNullOrWhiteSpace(strCon))

{return null;

}byte[] byCon =encoding.GetBytes(strCon);var rm = newRijndaelManaged

{

Key=byteKey,

Mode=CipherMode.ECB,

Padding=PaddingMode.PKCS7

};

ICryptoTransform cTransform=rm.CreateEncryptor();byte[] resultArray = cTransform.TransformFinalBlock(byCon, 0, byCon.Length);returnProgram.ByteArrayToHexString(resultArray);

}catch{return "";

}

}public static string Decrypt(string strCon, byte[] byteKey,Encoding encoding)

{try{if (string.IsNullOrWhiteSpace(strCon))

{return null;

}byte[] byCon =HexStrToByte(strCon);var rm = newRijndaelManaged

{

Key=byteKey,

Mode=CipherMode.ECB,

Padding=PaddingMode.PKCS7

};

ICryptoTransform cTransform=rm.CreateDecryptor();byte[] resultArray = cTransform.TransformFinalBlock(byCon, 0, byCon.Length);returnencoding.GetString(resultArray);

}catch(Exception ex)

{return "";

}

}///

///

///

///

///

public static byte[] HexStrToByte(stringhexString)

{

hexString= hexString.Replace(" ", "");if ((hexString.Length % 2) != 0)

hexString+= " ";byte[] returnBytes = new byte[hexString.Length / 2];for (int i = 0; i < returnBytes.Length; i++)

returnBytes[i]= Convert.ToByte(hexString.Substring(i * 2, 2), 16);returnreturnBytes;

}///

///转化为16进制///

///

///

public static string ByteArrayToHexString(byte[] data)

{

StringBuilder sb= new StringBuilder(data.Length * 3);foreach (byte b indata)

{

sb.Append(Convert.ToString(b,16).PadLeft(2, '0'));

}returnsb.ToString().ToUpper();

}


http://www.taodudu.cc/news/show-647749.html

相关文章:

  • 【physx/wasm】在physx中添加自定义接口并重新编译wasm
  • excel---常用操作
  • Lora训练Windows[笔记]
  • linux基础指令讲解(ls、pwd、cd、touch、mkdir)
  • InnoDB 事务处理机制
  • 启明云端ESP32 C3 模组WT32C3通过 MQTT 连接 AWS
  • java原生封装_[Java教程]原生AJAX封装
  • java max sum_杭电1024 Max Sum Plus Plus状压dp(java)
  • java主线程控制子线程_CountDownLatch控制主线程等子线程执行完--Java多线程
  • mysql数据库事件不执行_如何查看mysql事件是否执行
  • 我的世界1.7.10java下载安装_我的世界1.7.10正式版
  • java编写单词数_JAVA flink小试——单词计数
  • bbs mysql_简单BBS程序(需MySQL支持)
  • java oom分析_OOM分析
  • anaconda怎么使用python包_Anaconda中python包的介绍与使用方法
  • php抓取运动步数,使用PHP抓取微博数据
  • php 网页截屏,怎么用PHP实现网页截图
  • thread php,php中关于线程thread的使用
  • cmf php,cmf公共函数解析-common.php
  • php 实现时时更新地图,PHP实现隔15分钟自动更新网站地图功能
  • php中显示不出图像,php – 无法显示图像,因为它包含错误
  • java后台日期怎么去重,JAVA后台业务实现去重
  • php stripos 返回值,php函数stripos详解
  • java中gc的认识,java JVM GC 笔记(个人对GC 或JVM 的了解)
  • java libpcap,Linux下编译安装libpcap
  • 网页实现人脸识别PHP,奇思妙想-用HTML5进行人脸识别
  • 文件包含漏洞不能包含php,ThinkPHP5漏洞分析之文件包含
  • php对应哪个oracle版本,Oracle 版本说明
  • php 主页子标题修改,关于有部分用户默认PC主页大标题标签修改无效的答疑.
  • 基于matlab的智能天线波束方向图仿真,基于MATLAB的智能天线波束方向图仿真
  • python中xlwt的局限,Python xlwt 生成Excel和设置特定单元格不可编辑
  • angularjs 导出excel php,AngularJS 导出Excel指令
  • php 连续点击事件,javascript设置连续两次点击按钮时间间隔的方法_javascript技巧...
  • oracle10g数据库热备份,Oracle10g数据库冷备份脚本文件
  • Oracle创建序列的sql语句,【Oracle学习】之 序列(Sequence)
  • cssd拉起oracle,oracle rac /etc/init.d/init.cssd startcheck