R语言:如何在GET请求中传递加密后的密码?
对接API时的RSA密码加密实现方案
最近在对接一个需要通过用户名和密码获取authToken的API,它对密码的要求是这样的:
Hashed password. May be passed as clear text, or as RSA-encrypted hash (see above for RSA public key).
我用R语言的openssl包实现了RSA加密密码的流程,亲测可用,代码和细节分享给大家:
具体实现代码
# 加载openssl库,用于加密操作 library(openssl) # 读取服务器提供的RSA公钥文件 aqKey <- read_pubkey("public_key.pem") # 填写API要求的用户名 user_name <- "UserName" # 安全获取用户输入的密码,转成原始字节后用公钥加密 password <- rsa_encrypt(charToRaw(askpass()), aqKey) # 将加密后的原始数据转为字符串,用于后续API请求 pw <- rawToChar(password)
几个需要注意的细节
- 一定要确保
public_key.pem是服务器提供的标准PEM格式公钥,如果读取失败,可以检查文件是否有多余的换行或格式错误 - 我用
askpass()来获取密码,它会弹出交互式输入框,避免明文写在脚本里;如果是自动化脚本运行,可以考虑从环境变量读取密码,同样要注意不要泄露敏感信息 - 有些API可能要求加密后的内容以Base64编码的字符串传递,这时候可以把最后一步改成
pw <- base64encode(password),具体要看API的文档要求
内容的提问来源于stack exchange,提问作者steine18
相关产品推荐
相关产品推荐

