gpt4 book ai didi

使用 Gradle 进行 Java 标记化

转载 作者:行者123 更新时间:2023-12-02 10:36:33 25 4
gpt4 key购买 nike

对于我当前的项目,我正在使用 Java 连接到 MySQL 数据库。

我有一些代码,其中我使用 Gradle 将敏感数据库凭据替换到 .java 文件中,使用 ReplaceTokens 在构建目录中填充文件的新版本并获取该版本(使用替换的“detokenized”值)来编译 .class 文件。

除了核心开发团队之外,我预计不会有任何人处理源 .java 文件,只会处理包含已编译的 .class 文件的 .war。然而,通过使用 vim 查看这些 .class 文件,我可以看出去标记化的值在编译的字节码中清晰可见。

我的问题是,假设我的 .class 文件可能被潜在的恶意代理从服务器检索,是否有更好的标记化方法可以为数据库凭据提供另一层安全性?

有关其他信息,MySQL 数据库仅通过套接字访问,因此我不认为恶意代理可以单独使用数据库凭据执行任何操作,但我希望尽可能难以确定这些凭据.

感谢您的任何建议!总的来说,我对 Java 和 Gradle 还很陌生,但这个项目已经让我深入了解了可以做什么。

最佳答案

这是一些进行 Base64 编码/解码的简单代码

我使用 Blowfish 作为算法

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;

public static String encrypt(String text) throws Exception
{
SecretKeySpec sksSpec = new SecretKeySpec(key.getBytes(), algo );
Cipher cipher = Cipher.getInstance(algo);
cipher.init(javax.crypto.Cipher.ENCRYPT_MODE, sksSpec);

byte[] encrypt_bytes = cipher.doFinal(text.getBytes());
return new String( Base64.encodeBase64(encrypt_bytes) );
}

public static String decrypt(String encrypt_str) throws Exception
{
SecretKeySpec sksSpec = new SecretKeySpec(key.getBytes(), algo);
Cipher cipher = Cipher.getInstance(algo);
cipher.init(Cipher.DECRYPT_MODE, sksSpec);

return new String(cipher.doFinal( Base64.decodeBase64(encrypt_str.getBytes("UTF-8"))));
}

关于使用 Gradle 进行 Java 标记化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53255120/

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