gpt4 book ai didi

java - 在java中加密一个十六进制字符串

转载 作者:行者123 更新时间:2023-12-02 08:34:53 25 4
gpt4 key购买 nike

我想询问有关我的问题的任何建议。我需要加密一个十六进制字符串。我不能使用java的内置函数,因为它在我的服务器上不起作用。简而言之,我必须对算法或任何加密消息的方法进行硬编码。谁能帮我解决这个问题?非常感谢!

这是代码。

public Encrypt(SecretKey key, String algorithm) {

try {
ecipher = Cipher.getInstance(algorithm);
dcipher = Cipher.getInstance(algorithm);
ecipher.init(Cipher.ENCRYPT_MODE, key);
dcipher.init(Cipher.DECRYPT_MODE, key);
} catch (NoSuchPaddingException e) {
System.out.println("EXCEPTION: NoSuchPaddingException");
} catch (NoSuchAlgorithmException e) {
System.out.println("EXCEPTION: NoSuchAlgorithmException");
} catch (InvalidKeyException e) {
System.out.println("EXCEPTION: InvalidKeyException");
}
}

public void useSecretKey(String secretString) {


try {
SecretKey desKey = KeyGenerator.getInstance("DES").generateKey();
SecretKey blowfishKey = KeyGenerator.getInstance("Blowfish").generateKey();
SecretKey desedeKey = KeyGenerator.getInstance("DESede").generateKey();

Encrypt desEncrypter = new Encrypt(desKey, desKey.getAlgorithm());
Encrypt blowfishEncrypter = new Encrypt(blowfishKey, blowfishKey.getAlgorithm());
Encrypt desedeEncrypter = new Encrypt(desedeKey, desedeKey.getAlgorithm());

desEncrypted = desEncrypter.encrypt(secretString);
blowfishEncrypted = blowfishEncrypter.encrypt(secretString);
desedeEncrypted = desedeEncrypter.encrypt(secretString);
} catch (NoSuchAlgorithmException e) {}
}

这些是我用过的方法。如果它作为应用程序运行,那么没有问题,但是当我将它放入我的服务器(即 glassfish 服务器)时,发生了异常,它说没有这样的算法。

最佳答案

忘记更改代码 - 整理环境。

您说当您将其作为命令行应用程序运行时它可以工作 - 我假设您的意思是在桌面上。你能在服务器上做同样的事情吗?

您在每个地方使用什么版本的 Java?确保您检查 Glassfish 中使用的是哪个版本 - 它可能与您在命令行上运行 java -version 时获得的版本不同。

顺便说一句,我希望您的真实代码不会吞下这样的异常。

关于java - 在java中加密一个十六进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2189848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com