Java中XOR编码的模糊gamma生成

Java中XOR编码的模糊gamma生成,java,security,encryption,Java,Security,Encryption,我正在编写一个java应用程序,它将被编译成机器代码。此应用程序将使用XOR加密对某些数据进行编码。该操作的Gamma在应用程序内部生成。我不能随机生成它,因为另一个应用程序将不得不解码信息,并且无法将gamma从第一个应用程序发送到第二个应用程序。因此,我需要一些使用第二个应用程序将提供的密钥生成gamma的方法。问题是这个算法可能会被调试器发现。我想让它尽可能的难,有什么办法吗 另外,我一直在考虑创建不同的java对象,这些对象需要一个参数并使用大量系统资源。之后我会对它们使用getByte

我正在编写一个java应用程序,它将被编译成机器代码。此应用程序将使用XOR加密对某些数据进行编码。该操作的Gamma在应用程序内部生成。我不能随机生成它,因为另一个应用程序将不得不解码信息,并且无法将gamma从第一个应用程序发送到第二个应用程序。因此,我需要一些使用第二个应用程序将提供的密钥生成gamma的方法。问题是这个算法可能会被调试器发现。我想让它尽可能的难,有什么办法吗


另外,我一直在考虑创建不同的java对象,这些对象需要一个参数并使用大量系统资源。之后我会对它们使用getBytes()。这将在调试器中产生大量额外的代码。

与其尝试实现自己的加密技术,不如尝试使用内置库来简化您的工作。由于要发送到自己的服务器,请使用
javax.crypto
java.security
软件包设置RSA加密

这个答案讨论了在Java中使用RSA:

如果您不熟悉RSA,请在wikipedia上阅读:


您的基本策略是创建公钥/私钥对,并将公钥放入客户端应用程序中。然后使用公钥加密数据,然后将其发送到服务器。在这里,您将使用私钥解密数据。

您为什么需要使用XOR加密而不是其他形式?默默无闻的安全通常不是一个好主意。在我的情况下,我想不出还有什么别的办法。我需要从客户端收集数据并将其发送回服务器。这些数据不应该被伪造。所以你只想把数据以加密格式发送到服务器,对吗?您将其发送到的是您的服务器吗?在所有客户端上使用相同的RSA公钥是否安全?是的。如果没有私钥,则无法解密加密的数据。这就是为什么它被称为公钥。请注意,除非要加密的数据非常小,否则部署混合加密是非常明智的:数据由随机密钥加密,然后使用RSA OAEP加密。通常还需要某种完整性和身份验证(对加密数据进行签名)。