如何保护您的公钥:
private static byte[] xor(final byte[] input, final byte[] secret) {
final byte[] output = new byte[input.length];
if (secret.length == 0) {
throw new IllegalArgumentException("empty security key");
}
int spos = 0;
for (int pos = 0; pos < input.length; ++pos) {
output[pos] = (byte) (input[pos] ^ secret[spos]);
++spos;
if (spos >= secret.length) {
spos = 0;
}
}
return output;
}
这段代码看起来很棒,而且运行正常。但我的问题是如何使用它?
我的想法是这样的:创建一个&#34;秘密&#34;
我的问题是隐藏秘密的地方,潜在的黑客能够获取我的公钥。因为如果秘密也是硬编码的并且算法是已知的......那么他将得到我的公钥。
答案 0 :(得分:0)
不确定为什么要保护公钥(也许你的意思是私人密钥?),毕竟公钥是公开的。把它放在一边,没有代码没有你想象的那么好。它是Vigenere cipher的变体,不太安全。这些密码不难破解,并且当您使用相同的密钥加密多个内容时变得特别容易。在CBC模式下使用AES比使用AES更好。
我认为Android Key Store不适合您。