命令行Jasypt客户端加密'操作不可能'

问题描述 投票:4回答:1

我正在使用Jasypt将我们的数据库密码以非明文格式存储在我们的hibernate配置文件中。

而不是

    <property name="hibernate.connection.username">user1</property>
    <property name="hibernate.connection.password">password1</property>

我想要类似的东西

    <property name="hibernate.connection.username">user1</property>
    <property name="hibernate.connection.password">ENC(0HY4F73HFPQ85CN)</property>

我正在使用PBEWITHMD5ANDTRIPLEDES算法。我正在阅读它,似乎这可能需要安装JCE或“管辖政策”扩展。我的问题是,如果我在PBE算法列表中看到这些内容,这些东西是否已经安装好了?

我运行了listAlgorithms.bat脚本:

C:\dev\jasypt-1.9.1\bin>listAlgorithms.bat

DIGEST ALGORITHMS:   [MD2, MD5, SHA, SHA-256, SHA-384, SHA-512]

PBE ALGORITHMS:      [PBEWITHMD5ANDDES, PBEWITHMD5ANDTRIPLEDES, PBEWITHSHA1ANDDESEDE, PBEWITHSHA1ANDRC2_40]

但是当我尝试加密我的密码时,我收到一条非常无用的错误消息:

C:\dev\jasypt-1.9.1\bin>encrypt.bat input=etrading_rw_123 password=encryptionkey algorithm=PBEWITHMD5ANDTRIPLEDES

----ENVIRONMENT-----------------

Runtime: Sun Microsystems Inc. Java HotSpot(TM) Client VM 20.14-b01



----ARGUMENTS-------------------

algorithm: PBEWITHMD5ANDTRIPLEDES
input: etrading_rw_123
password: encryptionkey



----ERROR-----------------------

Operation not possible (Bad input or parameters)

如果我使用algorithm = PBEWITHMD5ANDDES运行相同的脚本,它可以正常工作。 “支持的算法”列表是否实际上意味着“如果启用它们将支持的算法”而不是“可以使用的算法”?

我使用的是Java版本:

java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) Client VM (build 14.3-b01, mixed mode, sharing)
java encryption jasypt
1个回答
0
投票
  1. Java密码术扩展(JCE)无限强度管辖政策(小型下载)可以实现更高强度的算法。

https://www.oracle.com/technetwork/java/javase/downloads/jce-all-download-5170447.html

仅供参考:JDK 9及更高版本随附,默认情况下使用无限制的策略文件。

上述早期版本的无限制策略文件仅适用于早于8u161,7u171和6u181的JDK 8,7和6更新。在这些版本上以及稍后包含的策略文件,但默认情况下未启用。

有关详细信息,请参阅JDK-8170157。 https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8170157

  1. 另一个问题可能是您的JAVA_HOME环境变量指向较旧的Java版本。如果存在环境变量,Jasypt的bin / * .sh和* .cmd脚本使用$JAVA_HOME/bin/java%JAVA_HOME%\bin\java
© www.soinside.com 2019 - 2024. All rights reserved.