【问题标题】:Java symmetric key file generation and useJava对称密钥文件的生成和使用
【发布时间】:2011-08-30 04:52:10
【问题描述】:

我正在做一项学校作业,其中我正在将文件从一台主机发送到另一台主机。作为其中的一部分,我需要使用对称加密技术对发送的文件进行加密。

所以,我想应该有一个我需要在两端存储的密钥文件。因此,服务器使用该密钥进行加密,发送方使用相同的密钥进行解密。主机位于不同的地方。

所以,我这里需要一个密钥,我怎样才能生成这个密钥并从磁盘中读取呢?或者,如果我走错了路,如果有人在这里阐明一下,我将不胜感激。谢谢。

【问题讨论】:

  • 对于加密,我会使用 AES。要生成密钥,我只需使用提供加密 PRNG 的 API 并使用它来生成与密钥大小一样多的随机数据。并将密钥存储为十六进制编码字符串。

标签: java cryptography


【解决方案1】:

您可以使用现有的库,也可以自己编写一个简单的库。
例如,您可以使用的密钥:

String key = "kA}#rP~McSOF~";

例如,您可以使用密钥的方式:加密将密钥中的字符添加到要解密的文件中的字符中。除非键 char 是 thilde (~),否则取 char 的补码。

String txtToEncrypt = "StackOverflow";
bytes[] encrypted = txtToEncrypt.getBytes();
for (int i = 0; i < encrypted.length; i++)
{
    int keyIndex = i % key.length();
    int cK = key.charAt(keyIndex);
    int cE = encrypted[i];
    if (cK == '~')
    {
        cE = ~cE;
    } else
    {
        cE = (cE + cK) % 255;
    }
    encrypted[i] = (byte) cE;
}

现在由您来寻找解密算法。 :D

【讨论】:

  • 这太弱了,我称之为混淆而不是加密。
  • 这不是任何类型的加密,应该用于任何重要的事情。
猜你喜欢
  • 2012-11-30
  • 2020-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多