gpt4 book ai didi

r - 混淆R中的字符串

转载 作者:行者123 更新时间:2023-12-05 06:41:52 24 4
gpt4 key购买 nike

我有一个存储在纯文本文件中的密码。我想以某种方式混淆它,以防有人在看我的显示器。

理想情况下,我想用另一个默认字符串(例如“123”)加密密码并获得密码的混淆版本。然后,当我需要代码中的密码时,我想用相同的字符串“123”解密密码。混淆密码和普通密码的长度不同也很好。

所以,逻辑应该是:

encrypt(password, "123") -> obf_string
decrypt(obf_string, "123") -> password

我该怎么做?

附言我知道它无论如何都不安全,但这就是我现在想要的。

最佳答案

一种快速混淆的方法是通过随机数生成,这是我的尝试:

encrypt <- function(password, string){
set.seed(password)
encr <- round(runif(nchar(string), 0, 9))
y <- as.integer(substring(string, seq(nchar(string)), seq(nchar(string)))) + encr
return(y)
}

decrypt <- function(password, string){
set.seed(password)
encr <- round(runif(nchar(string), 0, 9))
y <- paste0(string - encr, collapse="")
return(y)
}

您的字符串是例如1984。您只需要选择一个密码,例如2016

> encrypt(2016, "1984")
[1] 3 10 16 5

您将它们提供给 encrypt(),该函数返回一个与您的字符串大小相同的数字向量。要取回字符串,请将 decrypt() 与您的密码和向量一起使用:

> decrypt(2016, c(3,10,16,5))
[1] "1984"

一个更简单的替代方案,进一步允许文本连接,是通过 base64 编码/解码,使用 base64enc包裹:

install.packages("base64enc")
library(base64enc)
base64encode(c(2,0,0,6))
base64decode("AgAABg==")

关于r - 混淆R中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39077345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com