首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用R生成htpasswd条目

使用R生成htpasswd条目
EN

Stack Overflow用户
提问于 2019-11-27 04:02:41
回答 1查看 143关注 0票数 0

是否有一种方法可以使用R生成htpasswd条目,即不使用htpasswd实用程序本身?

Apache文档称,

htpasswd使用bcrypt (为Apache、SHA1修改的MD5版本)或系统的crypt()例程加密密码。由htpasswd管理的文件可能包含不同编码类型的密码;一些用户记录可能有bcrypt或MD5加密的密码,而在同一文件中的其他用户可能有用crypt()加密的密码。

我试过使用openssl::md5digest::digest,但它们似乎并没有产生我能识别的任何东西。

下面是一些在Ubuntu上使用htpasswd的示例输出。结果每次都会改变,大概是因为使用了一种盐。哈希看起来也不像是hash 64编码的。

代码语言:javascript
复制
hongo@hongsdev:~$ echo bar | htpasswd -n -i foo
foo:$apr1$ArTUhiJz$/qjciBNKHEWwpXBof75rb.

hongo@hongsdev:~$ echo bar | htpasswd -n -i foo
foo:$apr1$pZxmtIam$VkfMvV2qR4NBkPm3MKcJ/.

hongo@hongsdev:~$ echo bar | htpasswd -n -i foo
foo:$apr1$IFM43G9p$UkQB9QSONrwD74WpXlP7f/

使用openssl::md5digest::digest的一些尝试

代码语言:javascript
复制
r$> openssl::md5("bar")
[1] "37b51d194a7513e45b56f6524f2d51f2"

r$> digest::digest("bar", algo="md5")
[1] "cbd2100992f98ebf9169448cf98f63a5"

r$> openssl::base64_encode(openssl::md5("bar"))
[1] "MzdiNTFkMTk0YTc1MTNlNDViNTZmNjUyNGYyZDUxZjI="
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-23 06:31:51

回到这个..。

bcrypt包提供了一个用于blowfish密码哈希算法的R接口,并且可以用来生成一个合适的文件。似乎没有其他算法的软件包,但这一种方法有效。

代码语言:javascript
复制
library(bcrypt)

user_list <- list(
    c("user1", "password1")
)
user_str <- sapply(user_list, function(x) paste(x[1], hashpw(x[2]), sep=":"))
writeLines(user_str, "auth")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59062825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档