我正在编写一个简单的应用程序来使用AES / CBC(模式)加密我的消息.由于我的理解CBC模式需要IV参数,但我不知道为什么我的代码工作没有使用IV参数.有谁能解释为什么?谢谢.

打印的加密消息:T9KdWxVZ5xStaisXn6llfg ==无例外.

public class TestAES {

public static void main(String[] args) {

try {

byte[] salt = new byte[8];

new SecureRandom().nextBytes(salt);

SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");

KeySpec keySpec = new PBEKeySpec("myPassword".toCharArray(), salt, 100, 128);

SecretKey tmp = keyFactory.generateSecret(keySpec);

SecretKeySpec key = new SecretKeySpec(tmp.getEncoded(), "AES");

Cipher enCipher = Cipher.getInstance("AES/CBC/PKCS5Padding");

enCipher.init(Cipher.ENCRYPT_MODE, key);

// enCipher.init(Cipher.ENCRYPT_MODE, key, new IvParameterSpec(iv));

byte[] cipherBytes = enCipher.doFinal("myMessage".getBytes());

String cipherMsg = BaseEncoding.base64().encode(cipherBytes);

System.out.println("Encrypted message: " + cipherMsg);

} catch (Exception ex) {

ex.printStackTrace();

}

}

}

java aes key iv_java – AES / CBC真的需要IV参数吗?相关推荐

  1. Delphi与JAVA互加解密AES算法

    搞了半天终于把这个对应的参数搞上了,话不多说,先干上代码: package com.bss.util;import java.io.UnsupportedEncodingException; impo ...

  2. Vue前端和Java后端 联调使用AES 前后端加密解密

    Vue前端和Java后端 联调使用AES 前后端加密解密 最近在项目中需要针对重要数据进行加密传输,在网上找了一大推加密方式 最终采用AES 加密 Java端 package com.zk.web.u ...

  3. Java 环境下使用 AES 加密的特殊问题处理

    1. 密钥长度问题 默认 Java 中仅支持 128 位密钥,当使用 256 位密钥的时候,会报告密钥长度错误 Invalid AES key length 你需要下载一个支持更长密钥的包.这个包叫做 ...

  4. java aes 中文_从Java到Python的AES加密

    我试图对python和java中的一些字符串进行加密和解密,反之亦然,但是当我尝试用java加密和在python中使用相同的密钥解密时,我遇到了问题.在 这是我用来解密java输出的python算法f ...

  5. AES加密解密(CBC模式)

    高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES, ...

  6. JAVA 微信小程序AES解密数据 demo

    这个链接是官方文档的地址,但是demo下载中没有java的demo https://developers.weixin.qq.com/miniprogram/dev/framework/open-ab ...

  7. java实现MD5,SHA256,AES

    密码学支持 在日常工作中经常需要涉及到对数据的加密.解密以及数据验证等操作,Java提供了一些类来完成加密解密功能. 哈希函数 哈希函数通常用于验证数据指纹,同一个文件或数据,使用同一种哈希函数得到的 ...

  8. aes key长度_AES加密(1): 基本AES算法

    简介 AES原本指的是一套标准FIPS 197,而AES算法一般指分组大小为128bits的Rijndeal算法,由比利时学者Joan Daemen和Vincent Rijmen提出. AES与Rij ...

  9. Java实现对称加密算法-AES加解密

    AES(Advanced Encryption Standard)意思是高级加密标准,是一种区块加密标准.这个标准用来替代原先的DES,且已经被广泛使用. DES使用56位密钥,所以比较容易被破解. ...

最新文章

  1. php array的实现原理,PHP数组遍历与实现原理
  2. IT从业者进阶指南:如何提升自身的不可替代性
  3. 中兴服务器raid配置_-服务器Raid卡更换后如何恢复硬盘Raid组信息
  4. 伊利诺伊香槟分校计算机科学,伊利诺伊大学香槟分校计算机科学与信息系统世界排名2019年最新排名第31(QS世界排名)...
  5. mybatis-批量操作
  6. jedis连接mysql_使用Jedis操作Redis数据库
  7. ajax.request提交,ajax request 请求
  8. Linux lvs 的固定访问
  9. 软件配置,软件配置及变更管理的重要意义与价值
  10. java mysql数据库操作_java 操作mysql数据库
  11. 项目管理 之四 常用的项目管理工具(Github、Gitlab、Gitea、Gitee、Worktile、Teambition)
  12. python查看微信撤回消息怎么弄_Python3爬虫查看微信撤回消息
  13. JavaScript事件解析
  14. 连分数与丢番图方程简介
  15. HDU 6078 Wavel Sequence (dp)
  16. 生成模型的2022年——人工智能AIGC顶级论文回顾
  17. Javascript异常(exception)处理机制详解 JS、异常Error属性
  18. ViKey加密狗对Word文档进行加密
  19. 从内盘外盘的变化中看趋势
  20. 生化奇兵: 无限 设置简体中文和显示对白字幕

热门文章

  1. 文巾解题 1418. 点菜展示表
  2. 算法岗一片红海,如何选择适合自己的方向?
  3. 拉格朗日插值法的MATLAB源程序
  4. MySQL如何向表中增加、修改字段
  5. chapter2 机器学习之KNN(k-nearest neighbor algorithm)--K近邻算法从原理到实现
  6. 博图只能通过地址相同设备找到plc_小白求教:博途v13无法连接s7-1200,显示在网络上未找到任何设备...
  7. Python入门100题 | 第080题
  8. Python编程基础:第二十九节 异常Exception
  9. 第7章 PCA与梯度上升法
  10. day14 集合与函数