如何加密R中的数据?

时间:2011-04-27 15:07:09

标签: r logging encryption-asymmetric sentry

我正在向sentry handler添加R logging package。当前django-sentry根据共享密钥验证客户端(应用程序发送日志记录),该密钥在安全通道中以明文传输。

我想知道是否可以从R进行加密,最好是基于非对称的公钥,但我发现没有任何相关性。

好吧,不是“如果可能的话”,而是“怎么做”以及是否有人已经这样做了。


与django-sentry的作者互动后,我们选择hmac,我已在digest R包中实现(版本0.5+包含它)。这回答“如何使用R加密数据”的问题,但它解决了形成我最初问题基础的问题。

此时我并不是更积极地参与R中的不对称编码,但是,如果您对它感兴趣并且想要提供想法或代码,请在此处留言!

3 个答案:

答案 0 :(得分:7)

您也可以在作者Simon Urbanek的PKI package中找到合适的功能。

此软件包提供PKI功能,例如verifyig证书,RSA登记和签名,可用于构建PKI基础结构和执行加密任务。

教程中的示例代码:

require(PKI)
key <- PKI.genRSAkey(2048)
x <- charToRaw("Hello, world!")
e <- PKI.encrypt(x, key)
y <- PKI.decrypt(e, key)
stopifnot(identical(x, y))
print(rawToChar(y))

结果为:[1] "Hello, world!"

,而加密邮件e是:

  [1] 36 83 d3 70 0a 67 b5 05 a6 40 1e 37 28 b9 4e 28 f1 31 92 14 2c 35 c8 8a 61 93 1e 04 62 01 da 3b 2b a0 75 1c 10 58 26
 [40] e4 77 da 7a 47 3f 4e 44 29 8e 97 6f 62 b1 98 44 ba 18 ef 57 1e 9e 9c 27 a8 6e 9c 7b c7 8b c0 c3 a3 00 e2 67 98 8b 6e
 [79] 1a 93 c6 d6 ed 4b 54 e5 7a 07 d7 06 ef a6 bb 36 6a 7f 57 06 b9 15 03 f6 51 3f 07 48 cb f4 2d 25 15 be 42 de f4 8a 06
[118] 72 89 b1 e3 04 d3 ec 80 99 f0 66 0f 84 e1 b5 af 23 24 a1 36 8e 62 65 ae 19 fb 77 d1 36 06 ae 71 95 ee 57 aa 68 5a 6b
[157] 4e 28 ba a2 0d 17 78 11 6c 7f 1b b3 ce 31 65 a9 d3 71 89 76 f9 19 a0 7a bf 02 dd c9 1f cb 9c 39 25 d4 48 a2 23 83 26
[196] b4 a9 b1 40 f5 1d 46 21 35 12 52 73 09 9b f3 52 e1 9e 0d 2a 9b ff 70 81 41 24 49 ed 58 b2 61 dc 3e c9 b3 b2 b1 37 e0
[235] 48 76 18 bf b0 e5 c2 d9 2b 92 2f 6b 49 dd e0 93 b7 10 f8 ba d2 8a

答案 1 :(得分:4)

这会对您有所帮助吗: digest package?它具有几个散列函数。据我所知,非对称加密与散列相同......

答案 2 :(得分:3)

这是一个老线程,但如果其他人遇到这个问题,似乎Hadley有一个secure包。自述文件指出:

安全包在公共可用代码存储库中提供安全库。它允许您将私有信息存储在公共存储库中,以便只有选择的人才能读取它。这对于测试特别有用,因为您现在可以将私有凭据存储在公共存储库中,而不会被全世界读取。

Secure建立在非对称(公钥/私钥)加密之上。 Secure生成随机主密钥,并使用它来加密(使用AES256)Vault /中的每个文件。主密钥未在任何地方未加密存储;相反,使用他们自己的公钥为每个用户存储加密副本。每个用户都可以使用他们的私钥解密加密的主密钥,然后用它来解密每个文件。