我正在编写一个简单的应用程序来使用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. JavaBean规范
  2. C语言实现二进制文件读写
  3. 小技巧—设置IIS禁止网站放下载电影文件
  4. HDU Problem 2062 Bone Collector【01背包】
  5. 冠榕智能灯光控制协议分析(node-controller)
  6. HTML5的应用缓存
  7. python传递参数*与**
  8. 重点项目却总是腐化,程序员为什么会写烂代码?
  9. python google地图_Google地图下载
  10. 第三方银联支付接口对接_php版银联支付接口开发简明教程
  11. ubuntu挂载移动硬盘时提示Unable to mount
  12. html站点根目录在哪里,域名根目录在哪里
  13. 视频网站盈利模式与营销策划
  14. 有哪些值得推荐的,关于脑科学认知研究的经典书籍 ?
  15. 数学建模美国赛论文常用句式总结
  16. Python数据结构栈,后进先出
  17. Spring学习笔记(三十二)——SpringBoot中cache缓存的介绍和使用
  18. vue3 baseCss 初始化
  19. Python:11设计动物Animal类,该类包括颜色color属性与叫call方法。再设计鱼Fish类,包括.....
  20. linux下分区比例,安全地调整Linux分区大小的三种方法 | MOS86

热门文章

  1. tableau可视化数据分析60讲(二十二)-tableau常见面试题目
  2. 强化学习(九)Deep Q-Learning进阶之Nature DQN
  3. 深度学习100例-卷积神经网络(CNN)识别眼睛状态 | 第17天
  4. Python3--批量爬取数据之调用百度api进行翻译
  5. 从netty-example分析Netty组件续
  6. Getting started with Apache Camel--转载
  7. Linux服务器集群系统(三)--转
  8. Android targetSdkVersion详解
  9. 【采用】无监督学习在反欺诈中的应用
  10. 哈佛经济学教授卧底贫民窟8年,揭开穷人最大真相:这比贫穷更可怕