Java AES 256加密

rupen

我有下面的Java代码来加密使用64个字符的密钥的字符串。我的问题是这将是AES-256加密吗?

String keyString = "C0BAE23DF8B51807B3E17D21925FADF273A70181E1D81B8EDE6C76A5C1F1716E";
byte[] keyValue = hexStringToByte(keyString);
Key key = new SecretKeySpec(keyValue, "AES");
Cipher c1 = Cipher.getInstance("AES");
c1.init(Cipher.ENCRYPT_MODE, key);

String data = "Some data to encrypt";
byte[] encVal = c1.doFinal(data.getBytes());
String encryptedValue = Base64.encodeBase64String(encVal);


/* Copied the below code from another post in stackexchange */
public static byte[] hexStringToByte(String hexstr) 
{
  byte[] retVal = new BigInteger(hexstr, 16).toByteArray();
  if (retVal[0] == 0) 
  {
    byte[] newArray = new byte[retVal.length - 1];
    System.arraycopy(retVal, 1, newArray, 0, newArray.length);
    return newArray;
  }
  return retVal;
}

以下是结合了divanov和laz建议的代码。

String keyString = "C0BAE23DF8B51807B3E17D21925FADF273A70181E1D81B8EDE6C76A5C1F1716E";
byte[] keyValue = DatatypeConverter.parseHexBinary(keyString);
Key key = new SecretKeySpec(keyValue, "AES");
Cipher c1 = Cipher.getInstance("AES");
c1.init(Cipher.ENCRYPT_MODE, key);

String data = "Some data to encrypt";
byte[] encVal = c1.doFinal(data.getBytes());
String encryptedValue = Base64.encodeBase64String(encVal);
迪万诺夫

是的,它将是64个字符,即32个字节和256位,并且256位的任何序列都可以用作AES-256密钥。

我建议您使用DatatypeConverter.parseHexBinary(或您选择的库中的类似实用程序)将十六进制字符串转换为字节数组。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AES 256加密-Qt等效于Java

来自分类Dev

AES256 JAVA 加密与 C# 加密不匹配

来自分类Dev

用Java加密并用C#解密AES 256位

来自分类Dev

Java中基于AES-256密码的加密/解密

来自分类Dev

AES-256-CBC 用 PHP 加密并用 Java 解密

来自分类Dev

使用AES的Java加密

来自分类Dev

Android Java AES加密

来自分类Dev

Java AES 加密 - 幕后

来自分类Dev

AES加密256 ECB模式

来自分类Dev

AES-256 加密/解密

来自分类Dev

Java中具有AES256加密的Pr0blem

来自分类Dev

如何使用Java从CryptoJS解密加密的AES-256字符串?

来自分类Dev

Java使用aes256 / CBC / PKCS7Padding加密文件

来自分类Dev

如何处理BadPaddingException在C#中AES256加密和解密在Java中

来自分类Dev

将旧的 AES 256 加密从 Java 重新编码为 Ruby

来自分类Dev

Java与.NET中的AES加密

来自分类Dev

这是否使用256位AES加密?

来自分类Dev

无需IV的AES 256加密/解密

来自分类Dev

带有填充的AES 256加密PHP

来自分类Dev

加密AES 256输入明文长度问题

来自分类Dev

在iOS中实现AES256加密

来自分类Dev

解密AES256加密字节

来自分类Dev

AES 256加密MySQL与PHP方法

来自分类Dev

无法解密AES256加密文本

来自分类Dev

AES 256 加密与结果不匹配

来自分类Dev

Java 8 u65和u71之间不兼容PBE AES_256加密

来自分类Dev

AES 256位加密-java.security.InvalidAlgorithmParameterException:错误的IV长度:必须为16个字节长

来自分类Dev

在iOS中以256块大小进行AES 256位加密

来自分类Dev

AES 128 位 & AES 256 位加密解密