Maven 如何加密settings.xml值?

Maven 如何加密settings.xml值?,maven,encryption,Maven,Encryption,有人能告诉我如何加密一些值(字符串)吗 用户不能通过文本编辑器打开文件来读取文件内容,但程序应该能够解密这些值 我该怎么做 您需要加密存储在磁盘上的数据,并在运行时从磁盘读取设置时对其进行解密。如何做到这一点将取决于您使用的编程语言。JAVA和.NET等框架具有内置的加密库(例如,对于大多数流行的编程语言,您可能可以找到用于不同私钥加密算法的第三方库。否则,您将需要实现自己的私钥加密算法。如果必须这样做,我将考虑使用AES。如果您只需要加密设置,您可以找到合适的信息开始使用。。.xml,exec

有人能告诉我如何加密一些值(字符串)吗

用户不能通过文本编辑器打开文件来读取文件内容,但程序应该能够解密这些值


我该怎么做

您需要加密存储在磁盘上的数据,并在运行时从磁盘读取设置时对其进行解密。如何做到这一点将取决于您使用的编程语言。JAVA和.NET等框架具有内置的加密库(例如,对于大多数流行的编程语言,您可能可以找到用于不同私钥加密算法的第三方库。否则,您将需要实现自己的私钥加密算法。如果必须这样做,我将考虑使用AES。如果您只需要加密设置,您可以找到合适的信息开始使用。

。.xml,execute:

mvn --encrypt-password <password>
您可以在settings.xml中使用此密码:

<settings>
 ...
    <servers>
    ...
        <server>
          <id>my.server</id>
          <username>foo</username>
          <password>{COQLCE6DU6GtcS5P=}</password>
        </server>
    ...
    </servers>
...
</settings>

...
...
我的服务器
福
{COQLCE6DU6GtcS5P=}
...
...

有关更多信息,请查看此帖子:

了解密钥。如果用户可以运行代码,则用户可以访问代码可以访问的任何内容。您所能做的就是使其更难。@SLaks您是正确的,但听起来后一个选项正是OP试图做的。加密设置是使用户更难访问的最佳方法之一你的观点是:没有什么是完全安全的,所以你不应该费心去隐藏任何东西?@zaph 1.如果你没有其他选择,实现你自己的加密没有什么错。除非你需要真正的安全。2.在这种情况下,听起来你可以在程序中把密钥作为常量硬编码rce,假设它是编译的。是的,他们可以通过反编译得到,但同样,没有什么是100%安全的。3.这取决于,但是的,当前的标准是高级加密标准(AES)。@zaph 4.AES是Rijndael加密算法的一种变体。它是一种私钥加密算法(也称为密钥算法)与公钥算法(或非对称密钥加密算法)相反,还有其他私钥算法,AES不是唯一的算法,它不是“通常称为密钥加密”从帖子的声音来看,OP需要能够读取程序中的加密信息。这意味着他们不能使用AES的任何实现来加密这些信息。他们需要有一个为他们提供某种API的实现。否则,他们必须进行系统调用以解密信息,然后通过操作系统管理一份明文副本。这样会更加不安全,并且容易受到攻击。我不是建议他们自己实现它,除非没有现有的实现。我不是说创建他们自己的算法,我是说实现一个现有的算法。当然,他们不应该创建自己的算法他们是一名密码工程师。你是说每种编程语言都有一个可用的API,它是一个专业创建的适当加密算法的实现?你甚至不知道OP编程语言使用的是什么语言。你怎么可能知道一个实现确实存在。你想要他们做什么o如果一个实现不存在怎么办?如果你要反驳我的话,请提供一个更合适的解决方案。
<settings>
 ...
    <servers>
    ...
        <server>
          <id>my.server</id>
          <username>foo</username>
          <password>{COQLCE6DU6GtcS5P=}</password>
        </server>
    ...
    </servers>
...
</settings>