好吧,只要您知道混淆不是安全性,就有一些简单的混淆方法。您没有指定密钥的存储方式,因此我假设它们以二进制形式存储在文件中。
最简单的混淆是xor
有一些价值 - 我会使用“DEADBEEF”只是因为它听起来很美味:
keyFile <- "c:/foo.bin"
obfuscatedKey <- readBin(keyFile, "raw", file.info(keyFile)$size)
key <- xor(obfuscatedKey , as.raw(c(0xde, 0xad, 0xbe, 0xef))) # xor with DEADBEEF
由于xor
是对称的,相同的代码也可用于从原始密钥创建混淆密钥。
另一种方法是打乱向量。通过使用带有“秘密”种子 (42) 的随机数生成器,密钥被混淆:
# obfuscate
key <- 101:110
n <- length(key)
set.seed(42, "Mersenne-Twister") # To get the same permutation
perm <- sample.int(n)
obfuscatedKey <- key[perm]
# unobfuscate
orgKey <- integer(n)
set.seed(42, "Mersenne-Twister") # To get the same permutation
perm <- sample.int(n)
orgKey[perm] <- obfuscatedKey
identical(key, orgKey) # TRUE
...你当然可以结合这两种方法...