Java AES 256 加密

2024-05-14

我有下面的 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 密钥。

我建议你使用数据类型转换器.parseHexBinary http://docs.oracle.com/javase/7/docs/api/javax/xml/bind/DatatypeConverter.html#parseHexBinary%28java.lang.String%29(或您选择的库中的类似实用程序)将十六进制字符串转换为字节数组。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java AES 256 加密 的相关文章

随机推荐

  • sleep 0 有特殊含义吗?

    我看到很多用法sleep 0在我的一个客户项目中 代码看起来像这样 while true sleep 0 end 阅读一些像这样的答案this https stackoverflow com questions 3727420 signif
  • Karasuba算法递归过多

    我正在尝试用 c 实现 Karasuba 乘法算法 但现在我只是想让它在 python 中工作 这是我的代码 def mult x y b m if max x y lt b return x y bm pow b m x0 x bm x1
  • 根据传递的参数覆盖 Javascript 函数

    是否可以根据传递给函数的参数数量来重写函数 例如 function abc name document write My name is name function abc name friend document write My nam
  • Maven 按顺序构建所有内容

    我有一个项目 其中所有项目都有一个父 pom 定义如下
  • dask apply:AttributeError:“DataFrame”对象没有属性“name”

    我有一个参数数据框 并对每一行应用一个函数 该函数本质上是几个 sql queries 和对结果的简单计算 我正在尝试利用 Dask 的多处理 同时保持结构和界面 下面的例子有效并且确实有显着的提升 def get metrics row
  • 使用 FoldLine 解析多个块

    对于这个简化的问题 我试图解析一个如下所示的输入 foo bar baz quux woo hoo xyzzy glulx into foo bar baz quux woo hoo xyzzy glulx 我尝试过的代码如下 import
  • 如何处理 clang 中的全局构造函数警告?

    Clang 警告 当使用 Weverything or Wglobal constructors 关于静态对象的构造函数 warning declaration requires a global constructor Wglobal c
  • PHP file_exists() 对我不起作用?

    由于某种原因 下面的 PHP 代码将无法工作 我无法弄清楚 很奇怪的是 file exists 似乎没有看到图像确实存在 我已经检查以确保将良好的文件路径插入到 file exists 函数中并且它仍在运行 如果我将 file exists
  • Powershell XMLDocument保存为无BOM的UTF-8

    我构建了一个 System Xml XmlDocument 类型的 XML 对象 scheme gettype IsPublic IsSerial Name BaseType True False XmlDocument System Xm
  • Android 和 Google 地图内部片段以及其他控件和 viewpager

    我是android编程新手 我有一个带有 3 个页面 片段 的小应用程序 使用 pageradapter 和 viewpager 在它们之间滑动 其中一个页面包含复选框 和其他控件 和地图 我的问题是程序在启动时崩溃 Fragment co
  • 所有事件的 HTML5 EventSource 监听器?

    我使用 EventSource 在 JavaScript 客户端应用程序中推送通知 我可以像这样附加事件监听器 source addEventListener my custom event type function e console
  • 按偶数和奇数排序

    我想知道是否可以使用 std sort 函数按偶数或奇数对数字进行排序 我有以下代码 但我不确定如何在 std sort 中实现 inline bool isEven const Point n return n getX 2 0 它是否正
  • 从嵌入 C# 的浏览器控件获取 HTML 源代码

    我有一个嵌入在 C Windows 应用程序中的浏览器控件 我想获取渲染的 HTML 可能已被 javascript 修改 而不是原始 HTML 有什么建议么 您可以获取 HTML 并确实设置它 使用WebBrowser DocumentT
  • Talend 中的常见日志记录

    我试图在 Talend 中实现日志记录 所以我使用普通组件做了一个工作 我通过 Twarn 和 Tdie 记录了错误 信息和调试 使用 Logcatcher 我将日志分为调试和错误两个文件 这部分工作正常 现在我已经做了两份工作 首先 使用
  • Google Sheets API v4 和 valueInputOption

    我的电子表格中有三列 第一个是日期 第二个和第三个是简单字符串 当我批量上传数据时valueInputOption RAW 我的日期列得到错误的结果 所有日期前面都有一个看不见的撇号 字符串列没问题 当我使用valueInputOption
  • GWT、Maven、Spring - 在 Maven 构建上获取 com.thoughtworks.qdox.parser.ParseException:语法错误

    我正在尝试集成此演示中的代码 http code google com p gwt spring starter app http code google com p gwt spring starter app 进入我的主要 Spring
  • Pandas如何按时间段过滤DataFrame

    我有一个包含下表的文件 Name AvailableDate totalRemaining 0 X3321 2018 03 14 13 00 00 200 1 X3321 2018 03 14 14 00 00 200 2 X3321 20
  • 为什么 jar 执行的通配符在 docker CMD 中不起作用?

    我有一个Dockerfile与以下CMD启动我的 Spring Boot 应用程序 FROM java 8 jre CMD java jar app file jar 当我尝试从创建的图像启动容器时 我得到 Error Unable to
  • mod_rewrite GUI?

    任何人都有用于开发 mod rewrite 规则的图形工具 理想情况下 它会显示重写管道 然后当给定 uri 实例时 会显示应用时的转换 让它们正确设置总是很痛苦 因此任何使其变得更容易的方法都会有所帮助 对于 htaccess 阅读 mo
  • Java AES 256 加密

    我有下面的 java 代码来加密使用 64 个字符密钥的字符串 我的问题是这会是 AES 256 加密吗 String keyString C0BAE23DF8B51807B3E17D21925FADF273A70181E1D81B8EDE