当前位置: 首页 > 知识库问答 >
问题:

Jasypt与Bouncy Castle JCE SHA512加密

谭翔
2023-03-14

我需要:基于密码的加密使用sha512消化和256位AES加密与cbc和bc标志设置。

看来算法应该是这样的:PBEWithSHA512AndAES256-CBC-BC

但是在我的本地环境中,我得到错误:org.jasypt.exceptions.encryptioninitializationexception:java.security.nosuchalgorithmexception:没有这样的算法:PBEWithSHA512AndAES256-CBC-BC for provider BC

我的测试代码:

import java.security.Security;

import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;

public class App {

static {
    Security.addProvider(new BouncyCastleProvider());
}

public static void main(String[] args) {
    StandardPBEStringEncryptor mySecondEncryptor = new StandardPBEStringEncryptor();
    mySecondEncryptor.setProviderName("BC");
    // mySecondEncryptor.setAlgorithm("PBEWITHSHA256AND128BITAES-CBC-BC");
    mySecondEncryptor.setAlgorithm("PBEWithSHA512AndAES256-CBC-BC");
    mySecondEncryptor.setPassword("pass");

    String myText = "Mindaugas";
    String mySecondEncryptedText = mySecondEncryptor.encrypt(myText);

    System.out.println(mySecondEncryptedText);
    System.out.println(mySecondEncryptor.decrypt(mySecondEncryptedText));
}
}

我已安装扩展表单:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

但仍然得到这个错误:没有这样的算法

共有1个答案

宣胜
2023-03-14

由于bouncycastle网站上的算法列表没有更新,查看Java文件BouncyCastleProvider.Java中的构造函数中的代码,您可以找到BCPROV-JDK16支持的算法的详尽列表。一个支持的小列表(关于你正在寻找的算法/函数的类型)是-

PBEWITHSHAAND128BITAES-CBC-BC
PBEWITHSHAAND192BITAES-CBC-BC
PBEWITHSHAAND256BITAES-CBC-BC
PBEWITHSHA256AND128BITAES-CBC-BC
PBEWITHSHA256AND192BITAES-CBC-BC
PBEWITHSHA256AND256BITAES-CBC-BC
PBEWITHSHA1AND128BITAES-CBC-BC
PBEWITHSHA1AND192BITAES-CBC-BC
PBEWITHSHA1AND256BITAES-CBC-BC
PBEWITHSHA-1AND128BITAES-CBC-BC
PBEWITHSHA-1AND192BITAES-CBC-BC
PBEWITHSHA-1AND256BITAES-CBC-BC
PBEWITHSHA-256AND128BITAES-CBC-BC
PBEWITHSHA-256AND192BITAES-CBC-BC
PBEWITHSHA-256AND256BITAES-CBC-BC
 类似资料:
  • Jasypt 是一个 Java 库,它允许开发者以最小的努力为他/她的项目添加基本的加密功能,而且不需要对密码学的工作原理有深刻的了解。 高安全性、基于标准的加密技术,既可用于单向加密也可用于双向加密。加密密码、文本、数字、二进制文件... 与Hibernate的透明集成。 适合集成到基于Spring的应用程序中,也可与Spring Security透明地集成。 对应用程序的配置(即数据源)进行加

  • Jasypt Spring Boot 为 Spring Boot 项目中的属性源(property sources)提供加密支持。 有三种方法可以在项目中集成 jasypt-spring-boot: 如果 Spring Boot 项目中使用了 @SpringBootApplication 或者 @EnableAutoConfiguration ,在项目里添加jasypt-spring-boot-s

  • 我有一个由maven处理的Springboot项目,其中包含一些用Jasypt加密的秘密。当我运行时,我将传递jasypt密码为: 它能够运行测试用例,并将jar文件部署到存储库中。但是当我对mvn release做同样的操作时,jasypt密码没有正确设置。 或者 对于这两种情况,我在运行测试用例时都会遇到以下错误。 原因:java。lang.IllegalStateException:缺少必需

  • 使用Jasypt的pom.xml如下所示: 我的Main有以下注释: 我的数据库配置类:配置 结果是:加密:QGPenan7MPKRC4OPCHN8ZTSMOIX8IMX0Pt/Hi7X6YVDTE/BIS/PTAID76TEJ6TG解密:A12$$T@@! 当我在我的to应用程序中应用我的新加密密码时。yml:password:ENC(QGPenan7mpkrc4opchn8ztsmoix8im

  • 我想混淆(*)一些密码,以便将它们隐藏在Java源代码中。 发现jasypt,我想我事先加密了密码文本,然后在源代码中从记住的种子+加密密码中解密。但是,加密过程似乎不是可复制的:当使用 每次运行时,我都会返回不同的加密密码:、或。 我如何使加密可复制,这样我就可以使用种子加加密字符串来生成真正的密码? (*)我使用“混淆”,因为我知道这根本不是一种隐藏密码的安全方法,但至少它可以帮助人们在将密码

  • 创建随机盐。 使用SALT加密密码。 保存用户的salt和加密密码。 我想要盐的大小,算法给出作为输入。 我想要解密的原因是,我有一些为应用程序创建的配置文件和一些值是密码,我想要保存为加密的文件和解密时,我想要使用它。 谁能提供一个适当的例子或如何使用它在我自己的方式?我想实现Jasypt在文章中提到的。但没有可用的代码。