.NET对JAVA进行AES加密(SHA1PRNG)及解密方法
第一步:生成对应JAVA AES加密方法的KEY值
private static byte[] encryptJavaAes(string aesKey)
{
byte[] keyArray = null;
using (var sha1 = new SHA1CryptoServiceProvider())
{
byte[] hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(aesKey));
var rd = sha1.ComputeHash(hash);
keyArray = rd.Take(16).ToArray();
/* 将字节流转换成字符串输出
Base64Encoder coder = new Base64Encoder();
coder.GetEncoded(keyArray);
* */
}
return keyArray;
}
第二步:加密对应的字符串
/// <summary>
/// .NET对JAVA进行AES加密
/// </summary>
/// <param name="encryptString">需要加密的字符串</param>
/// <returns></returns>
private static string AESEncode(string encryptString)
{
if (string.IsNullOrEmpty(encryptString)) return null;
Byte[] toEncryptArray = Encoding.UTF8.GetBytes(encryptString);
RijndaelManaged rm = new RijndaelManaged
{
Key = encryptJavaAes("DCS"),//Convert.FromBase64String(encryptKey),
Mode = CipherMode.ECB,
Padding = PaddingMode.PKCS7
};
ICryptoTransform cTransform = rm.CreateEncryptor();
Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return Convert.ToBase64String(resultArray, 0, resultArray.Length);
}
第三步:解密加密的字符串
/// <summary>
/// 解密加密的字符串
/// </summary>
/// <param name="toDecrypt">需要解密的字符串</param>
/// <returns></returns>
private static string decrypt(string toDecrypt)
{
string aeskey = System.Configuration.ConfigurationManager.AppSettings["aeskey"];
byte[] keyArray = encryptJavaAes(“DCS”);//Convert.FromBase64String(key);
byte[] toEncryptArray = Convert.FromBase64String(toDecrypt);
RijndaelManaged rDel = new RijndaelManaged();
rDel.Key = keyArray;
rDel.Mode = CipherMode.ECB; //必须设置为ECB
rDel.Padding = PaddingMode.PKCS7; //必须设置为PKCS7
ICryptoTransform cTransform = rDel.CreateDecryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return UTF8Encoding.UTF8.GetString(resultArray);
}
.NET对JAVA进行AES加密(SHA1PRNG)及解密方法相关推荐
- JAVA实现AES加密
JAVA实现AES加密 java实现AES加密,直接上代码: import java.security.InvalidKeyException; import java.security.NoSuch ...
- java使用aes加密文件内容
aes是什么? aes是对称加密的一种,什么是对称加密呢?就是加密和解密使用相同的秘钥的加密算法,显而易见,aes加密和md5不同,aes是可逆的,aes加密算法用于替代以前的des加密算法. 使用场 ...
- java php aes加密解密_php aes 加密解密可与java对接
php aes 加密解密可与java对接 博主:liu1693 发表时间:2017-02-23 16:52:27 浏览量:100 class Encrypt{ //加密方法 public static ...
- Java使用AES加密解密
AES加密机制: 密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准. 这个标准用来替代原先的 ...
- java AES 加密和linux解密
java AES 加密: package app;import static java.nio.charset.StandardCharsets.US_ASCII; import static jav ...
- java android aes加密解密_AES加密解密在JAVA和ANDROID下互通
昨天外包安卓的那个人说AES的加解密结果不一样.于是百度搜索发现还真是! 贴上AES加密核心: Cipher cipher = Cipher.getInstance("AES/CBC/PKC ...
- java linux aes_java AES 加密和linux解密
java AES 加密:package app; import static java.nio.charset.StandardCharsets.US_ASCII; import static jav ...
- ios java aes_PHP7 AES加密解密函数_兼容ios/andriod/java对等加解密
**PHP7.0 7.1 7.2 7.3 AES对等加解密类 函数文件_兼容ios/andriod/java等** 由于新项目规划要求使用PHP7.2开发环境,但在部分新系统中仍需使用AES加解密方式 ...
- java aes 中文_java实现AES加密(解决中文解密后乱码问题,解决传输字符串后解密报错的问题)...
在对安全性要求比较高的报文做加密的时候,算法有很多种,我这里主要用到的就是AES加密算法.由于在国内使用,所以不可避免的要对中文进行加密和解密,而在这个过程中,发现,如果不做处理,很容易会出现中文乱码 ...
最新文章
- 超级干货丨优美的课程笔记,吴恩达点赞的深度学习课程信息图
- (98)FPGA时序裕量
- fragment中嵌套viewpager,vierpager中有多个fragment,不显示 .
- SPOJ KPSUM ★(数位DP)
- java 获取身份证号组成信息
- 标签类目体系(面向业务的数据资产设计方法论)-读书笔记5
- chrome浏览器上传文件fakepath问题
- Cyclone v器件关键参数
- k8s-身份认证与权限
- 用Qt实现Q-M算法化简逻辑表达式及Qt项目打包发布方法
- 2019 acm-icpc 西安全国邀请赛 J
- 蓝牙模块惨痛教训——模块与单片机串口的隔离(更新)
- Squeeze-and-Excitation Networks论文翻译——中文版
- C#从入门到精通学习笔记——(2)
- 蓝桥杯练习题Java实现 入门训练 Fibonacci数列
- 1.python爬取笔趣阁小说
- Python编程:从入门到实践(读书笔记:第6章 字典)
- 挤一趟早/晚高峰,你能学到很多迭代的知识……敏捷|迭代的地铁模型
- lisp 焊缝_焊接领域中 AutoCAD的二次开发
- 泛目录程序上排名的核心知识
热门文章
- 苹果电脑怎么看系统属性?
- phpcms适配php5.5,phpcms升级到v9.6,有三大重要改进
- 轻流·无代码系统搭建平台 快速开发平台3.4.5 版本 JNPF
- 【51nod_1381】硬币游戏
- 周杰伦的第8张专辑“我很忙”即将在11月2日推出
- python中的sep参数_Python sep参数使用方法详解
- 校外培训虚假宣传投诉,中创教育建议增强维权意识
- 辞职信也要玩出高big
- Java基础知识总结(史上最全)
- 【无标题】动态规划leetcode浅析(一)泰波那契序列