Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 以这种方式加密本地文件的算法,可以解密为许多真实的结果(对称)_Algorithm_Security_Encryption_Cryptography - Fatal编程技术网

Algorithm 以这种方式加密本地文件的算法,可以解密为许多真实的结果(对称)

Algorithm 以这种方式加密本地文件的算法,可以解密为许多真实的结果(对称),algorithm,security,encryption,cryptography,Algorithm,Security,Encryption,Cryptography,我有一个本地文件passwords.txt,其中存储了我个人使用的许多web服务的所有登录名和密码 在真正重要的条目中有一些符号和快捷方式,因此它已经具有一定的安全性 但我也希望从潜在的远程或物理访问对其进行加密,但在需要读取或添加数据时能够轻松解密 所以,我需要一些脚本,将采取passwords.txt和一些自己的密码,这将创建加密的密码文件与字节码内,可以很容易地通过密码解密,如: 加密算法应该产生这样的加密密码,使用错误的密码解密可能会产生内容,这些内容可以被视为真实内容,然后只能手动检查

我有一个本地文件passwords.txt,其中存储了我个人使用的许多web服务的所有登录名和密码

在真正重要的条目中有一些符号和快捷方式,因此它已经具有一定的安全性

但我也希望从潜在的远程或物理访问对其进行加密,但在需要读取或添加数据时能够轻松解密

所以,我需要一些脚本,将采取passwords.txt和一些自己的密码,这将创建加密的密码文件与字节码内,可以很容易地通过密码解密,如:

加密算法应该产生这样的加密密码,使用错误的密码解密可能会产生内容,这些内容可以被视为真实内容,然后只能手动检查

例如,我:

攻击者找到了我的加密和解密脚本,并:

>>> decrypt encrypted_passwords one-of-the-wrong-passwords
>>> cat passwords.txt
example3.com@mylogin3:mypassword3
example4.com@mylogin4:mypassword4
example5.com@mylogin5:mypassword5
所以攻击者甚至可以得到不同长度和格式的东西,但要像这样对待它:嗯,看起来是真实的,有意义的,实际上,它与现实无关

那么,哪种算法可以用于这种目的,它的密码应该有多强

我准备好了,这个密码甚至可以超过100兆字节,并且必须存储在其他文件或多个文件中,但我很高兴能够记住它


另外,如果还有一些可靠的bash或python工具/脚本/库,我也会很高兴的。我相信这比它的价值要麻烦得多,但请记住,这就是您要做的:

获取真实密码列表,可用于建立真实密码的统计模型; 使用该模型构建一个压缩器,比如可以压缩密码列表的PPM压缩器。使用此模型压缩密码列表将删除所有冗余,并提供更短的随机数据字符串。压缩机和模型将内置到您的程序中。 然后,加密程序将压缩并加密密码列表。 现在,当您使用任何密码解密时,您将获得一个随机数据字符串。确保在加密格式中没有任何头或填充会泄露数据是否正确。 当您解压任意随机数据串时,该模型将生成一个可信的密码列表。这个列表的合理性取决于你的统计模型有多好。还要确保您的压缩格式不包含任何指示解压缩是否正确的标题或标记。
正如我所说,这是一个比它的价值麻烦得多。为这项任务制作一个好的模型和一个好的压缩器是相当困难的。

File1是一个包含100000个网站的列表,file2是一些巨大的随机文本块。Decrypt从file1中选择一个网站,并在文本中选择一组索引以选择字母。这称为deniable encryption:deniability的值根据应用程序的具体情况而变化。在这种情况下,有人可能会认为它没有什么价值,因为攻击者只需要执行一个额外的小步骤,即尝试使用假定的凭据进行身份验证。但是,如果您有一个超级安全的服务,该服务锁定了一次失败的身份验证来自的IP地址,那么该值可能会上升。@PresidentJamesK.Polk添加该身份验证步骤对密码破解者来说将是一个巨大的负担。它不需要在离线状态下每秒进行数百万次哈希攻击,而是需要为每次尝试发出网络请求。这可能使许多常见的攻击变得不切实际。但是,如果攻击者知道单个有效凭据,则会破坏该保护。
>>> cat passwords.txt
example1.com mylogin1 mypassword1
example2.com mylogin2 mypassword2
>>> encrypt passwords.txt password
>>> decrypt encrypted_passwords one-of-the-wrong-passwords
>>> cat passwords.txt
example3.com@mylogin3:mypassword3
example4.com@mylogin4:mypassword4
example5.com@mylogin5:mypassword5