当前位置:   article > 正文

python3 - AES 加密实现java中SHA1PRNG 算法

python3 - AES 加密实现java中SHA1PRNG 算法

python3 - Java AES 加密实现java中SHA1PRNG 算法

Max.Bai

2019-02

目录

python3 - Java AES 加密实现java中SHA1PRNG 算法

0x00 事由

0x01 Java实现

0x02 Python3实现

0x03 总结

0x04 完整代码


0x00 事由

最近和java项目对接遇到AES加密算法,java代码有SecureRandom.getInstance("SHA1PRNG"); python实在找不到对应的方法,C#,php,js代码各种查到,大家都有遇到,解决的不多,C# 直接用java算出key,然后用C#再算AES(https://blog.csdn.net/yunhua_lee/article/details/17226089),耗时差不多2天,最终在php代码中找到方法(https://github.com/myGGT/crypt_aes/blob/master/crypt_aes.php),相关JavaScript代码(https://github.com/bombworm/SHA1PRNG/blob/master/index.js),记录下来给大家使用。

鉴于讨论的人多我在2020-11做一个总结,并写了一个开箱即用的类,可去这篇查看:Python - AES sha1prng 加密解密总结  更新于2020-11

 

0x01 Java实现

Java 加密参数说明(使用库)

AES加密模式ECB/CBC/CTR/OFB/CFB
填充pkcs5padding/pkcs7padding/zeropadding/iso10126/ansix923
数据块128位/192位/256位

我们就以java默认AES加密方法为例,其他加密模拟基本都是对key的处理一样。Java默认AES加密模式是"AES/ECB/PKCS5Padding"。

java代码:

  1. public static String AES_Encode(String encodeRules,String content){
  2. try {
  3. //1.构造密钥生成器,指定为AES算法,不区分大小写
  4. KeyGenerator keygen=KeyGenerator.getInstance("AES");
  5. //2.根据ecnodeRules规则初始化密钥生成器
  6. //生成一个128位的随机源,根据传入的字节数组
  7. //keygen.init(128, new SecureRandom(encodeRules.getBytes()));
  8. SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
  9. secureRandom.setSeed(encodeRules.getBytes());
  10. keygen.init(128, secureRandom);
  11. //3.产生原始对称密钥
  12. SecretKey original_key=keygen.generateKey();
  13. //4.获得原始对称密钥的字节数组
  14. byte [] raw=original_key.getEncoded();
  15. //5.根据字节数组生成AES密钥
  16. SecretKey key=new SecretKeySpec(raw, "AES");
  17. //6.根据指定算法AES自成密码器
  18. Cipher cipher=Cipher.getInstance("AES");
  19. //7.初始化密码器,第一个参数为加密(Encrypt_mode)或者解密解密(Decrypt_mode)操作,第二个参数为使用的KEY
  20. cipher.init(Cipher.ENCRYPT_MODE, key);
  21. //8.获取加密内容的字节数组(这里要设置为utf-8)不然内容中如果有中文和英文混合中文就会解密为乱码
  22. byte [] byte_encode=content.getBytes("utf-8");
  23. //9.根据密码器的初始化方式--加密:将数据加密
  24. byte [] byte_AES=ci
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/172762
推荐阅读
相关标签
  

闽ICP备14008679号