现在,这就是我正在做的: 1. SHA-1 密码,如“pass123”,使用密钥的十六进制解码的前 32 个字符 2. 使用 AES-256 加密,只要默认参数是 ^Is够安全吗?
我需要我的应用程序使用密码安全地加密数据。当我在谷歌上搜索时,会出现太多不同的事情,还有一些我也不了解的事情。我将此作为一般性问题提出,而不是任何特定的编码语言(尽管我计划将其与 Java 和 iOS 一起使用)。
因此,现在我正在尝试更正确地执行此操作,请遵循我的想法:
输入是密码,例如“pass123”,数据是我要加密的数据,例如“银行账户是038414838,密码是5931”
使用 PBKDF2 从密码中派生密钥。参数:1000 次迭代长度 256 位 Salt - 这个让我很困惑,因为我不知道从哪里得到盐,我只是弥补一个吗?例如,我所有的加密都将始终使用盐“F”(因为显然盐是 8 位,这只是一个字符)
现在我拿这把钥匙,我要散列它吗?我应该使用 SHA-256 之类的东西吗?那安全吗?什么是 HMAC?我应该用那个吗?注意:我是否需要同时执行第 2 步和第 3 步,还是只需要其中一个即可?
好的,现在我有 256 位密钥来进行加密。所以我使用 AES 执行加密,但这里还有另一个令人困惑的部分(参数)。我不太确定要使用哪些不同的“模式”,显然有像 CBC 和 EBC 之类的其他一些我也不确定“初始化向量”,我是否只是编造一个并总是使用那个? 那么其他选项呢,什么是PKCS7Padding?