解码用于 RODBC 的散列密码

Decoding hashed passwords for use with RODBC

在这个问题的开头,我会说我对密码散列的概念是全新的...请耐心等待。

我一直在使用 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] "a$jNtZmPwUt4pqEoTumGxK5e5MU.AgMGlygbGWyJUxMmShl7p1/VWBW"

理想情况下,我会将上面提到的 username.txtmy_password.txt 文件中的内容替换为此散列的结果,并修改我的 setconnect 函数以在将散列传递给 odbcConnect 之前对其进行解码。

但是,我不知道如何解码散列...这可能吗?

无法解码加密哈希,这是 thea 哈希的重点,它是一种单向函数。

只能通过暴力破解,即尝试密码,希望找到匹配的哈希值,这可能需要地球的尽头。

根据平台的不同,可能会有一个安全密钥库来保存密码。