java aes key iv_java – AES / CBC真的需要IV参数吗?
我正在编写一个简单的应用程序来使用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参数吗?相关推荐
- Delphi与JAVA互加解密AES算法
搞了半天终于把这个对应的参数搞上了,话不多说,先干上代码: package com.bss.util;import java.io.UnsupportedEncodingException; impo ...
- Vue前端和Java后端 联调使用AES 前后端加密解密
Vue前端和Java后端 联调使用AES 前后端加密解密 最近在项目中需要针对重要数据进行加密传输,在网上找了一大推加密方式 最终采用AES 加密 Java端 package com.zk.web.u ...
- Java 环境下使用 AES 加密的特殊问题处理
1. 密钥长度问题 默认 Java 中仅支持 128 位密钥,当使用 256 位密钥的时候,会报告密钥长度错误 Invalid AES key length 你需要下载一个支持更长密钥的包.这个包叫做 ...
- java aes 中文_从Java到Python的AES加密
我试图对python和java中的一些字符串进行加密和解密,反之亦然,但是当我尝试用java加密和在python中使用相同的密钥解密时,我遇到了问题.在 这是我用来解密java输出的python算法f ...
- AES加密解密(CBC模式)
高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES, ...
- JAVA 微信小程序AES解密数据 demo
这个链接是官方文档的地址,但是demo下载中没有java的demo https://developers.weixin.qq.com/miniprogram/dev/framework/open-ab ...
- java实现MD5,SHA256,AES
密码学支持 在日常工作中经常需要涉及到对数据的加密.解密以及数据验证等操作,Java提供了一些类来完成加密解密功能. 哈希函数 哈希函数通常用于验证数据指纹,同一个文件或数据,使用同一种哈希函数得到的 ...
- aes key长度_AES加密(1): 基本AES算法
简介 AES原本指的是一套标准FIPS 197,而AES算法一般指分组大小为128bits的Rijndeal算法,由比利时学者Joan Daemen和Vincent Rijmen提出. AES与Rij ...
- Java实现对称加密算法-AES加解密
AES(Advanced Encryption Standard)意思是高级加密标准,是一种区块加密标准.这个标准用来替代原先的DES,且已经被广泛使用. DES使用56位密钥,所以比较容易被破解. ...
最新文章
- JavaBean规范
- C语言实现二进制文件读写
- 小技巧—设置IIS禁止网站放下载电影文件
- HDU Problem 2062 Bone Collector【01背包】
- 冠榕智能灯光控制协议分析(node-controller)
- HTML5的应用缓存
- python传递参数*与**
- 重点项目却总是腐化,程序员为什么会写烂代码?
- python google地图_Google地图下载
- 第三方银联支付接口对接_php版银联支付接口开发简明教程
- ubuntu挂载移动硬盘时提示Unable to mount
- html站点根目录在哪里,域名根目录在哪里
- 视频网站盈利模式与营销策划
- 有哪些值得推荐的,关于脑科学认知研究的经典书籍 ?
- 数学建模美国赛论文常用句式总结
- Python数据结构栈,后进先出
- Spring学习笔记(三十二)——SpringBoot中cache缓存的介绍和使用
- vue3 baseCss 初始化
- Python:11设计动物Animal类,该类包括颜色color属性与叫call方法。再设计鱼Fish类,包括.....
- linux下分区比例,安全地调整Linux分区大小的三种方法 | MOS86
热门文章
- tableau可视化数据分析60讲(二十二)-tableau常见面试题目
- 强化学习(九)Deep Q-Learning进阶之Nature DQN
- 深度学习100例-卷积神经网络(CNN)识别眼睛状态 | 第17天
- Python3--批量爬取数据之调用百度api进行翻译
- 从netty-example分析Netty组件续
- Getting started with Apache Camel--转载
- Linux服务器集群系统(三)--转
- Android targetSdkVersion详解
- 【采用】无监督学习在反欺诈中的应用
- 哈佛经济学教授卧底贫民窟8年,揭开穷人最大真相:这比贫穷更可怕