難読化がセキュリティではないことを認識している限り、難読化する簡単な方法がいくつかあります。キーの保存方法は指定されていないため、バイナリ形式でファイルに保存されていると想定します。
最も単純な難読化は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
、同じコードを使用して元のキーから obfuscatedKey を作成することもできます。
もう 1 つの方法は、ベクトルをスクランブルすることです。「秘密の」シード (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
...もちろん、両方の方法を組み合わせることができます...