你好。我莎朗马克利斯在IDG通信,这里做更多的R:保持你的密码和安全令牌与钥匙圈。
作为一名前安全记者,以纯文本形式存储密码或令牌让我感到有点不舒服。这就是在R环境变量中存储密码或令牌字符串时发生的情况。
好消息是,如果你使用[R环境变量,它们不会在您的环境标签中显示。而且,如果你和别人分享自己的代码或发布在GitHub上的代码,你就不会错误地泄露了你的凭据。
下面是一个例子。我存储在一个(假的)谷歌客户端在我的[R环境ID和密码。如果我与googleAuthR包使用它们,它们不会在我的环境选项卡中显示出来,当我把我的选项。
坏消息是,他们是存储在一个纯文本文件,点Renviron。我们可以看到,如果我打开与usethis()文件:: edit_renviron。
见,它们在那里。
一个更好的想法是使用钥匙圈包。
从CRAN与通常的安装点安装的软件包,然后加载它。
您可以从R中的钥匙圈与键下划线集功能来存储的值。看的时候运行设置我的假客户端ID,会发生什么:
我可以将该值设置一次交互,而我从来没有输入明文值。
同为我的假SECRET
我们使用这些值的最佳方式是作为函数中的参数,所以实际值永远不会在您的环境标签或历史显示。我可以用钥匙圈的关键下划线get函数访问值。
您可以看到价值已定,如果我运行选项(这是我从来没有在一个真实的会话做)。
请记住,这仍然不是超级安全。这是一个很大的进步,你的证书存储在加密的钥匙圈。但是,任何人谁可以访问你的机器,并知道钥匙圈包仍然可以得到您的凭据。匙扣下划线列表将显示在钥匙圈所有可用的条目。
要添加一个安全层,你可以创建一个钥匙圈这就是尽可能地做内的钥匙圈下划线创建密码保护的那个。
你会被要求输入密码
你可以在解锁会话的开始,钥匙圈与钥匙圈下划线解锁
现在,您可以为新的标记设置的值,指定新的钥匙圈。
你可以一个值以同样的方式和以前一样,但指定的钥匙圈
你可以用钥匙圈下划线锁锁在脚本结束的钥匙圈
现在,如果你 - 或任何其他人 - 运行key_get,你(或他们)将被要求在钥匙圈密码。
而且,你有一些更安全的密码和令牌R.
这是它为这个情节,感谢收看!对于以上R提示,头向做多有R页面在HTTPS去点InfoWorld的点com削减更多的与R,除了R.您所有小写也可以找到做更多的在YouTube上播放列表[R。期待您的下一集!