我将在这个问题的序言中说,我对密码哈希的概念完全不熟悉......请耐心等待。
我一直在使用 RODBC 包中的 odbcConnect 功能来建立与数据库的连接。为了简化我的流程,我一直在本地将我的密码存储在一个文本文件中,然后将其读入,并将其传递给函数以建立连接。我建立连接的自定义函数如下所示:
setconnect <- function(){
db <-"myODBCname"
user <- readChar("C:\\Credentials\\username.txt",file.info("C:\\Credentials\\username.txt")$size)
pass <- readChar("C:\\Credentials\\my_password.txt", file.info("C:\\Credentials\\my_password.txt")$size)
conn <- odbcConnect(db, uid = user, pwd = pass)
return(conn)
}
我想用哈希密码替换该文本文件,以使其更安全。
我可以使用 bcrypt 包的 hashpw 函数来散列密码,如下所示:
> pass <- "myPassword"
> hash <- hashpw(pass)
> hash
[1] "$2a$12$jNtZmPwUt4pqEoTumGxK5e5MU.AgMGlygbGWyJUxMmShl7p1/VWBW"
理想情况下,我会使用此哈希的结果替换上面提到的 username.txt 和 my_password.txt 文件中的内容,并修改我的 setconnect 函数在将哈希传递给 odbcConnect 之前解码哈希。
但是,我不知道如何解码哈希......这可能吗?
答案 0 :(得分:1)
无法解码加密哈希,这是哈希的一个点,它是一个单向函数。
人们只能蛮力,即尝试使用希望找到匹配哈希的密码,这可能会持续到地球的尽头。
根据平台的不同,可能会有一个安全的密钥库来保存密码。