java - 单向加密的更好方法

标签 java encryption aes

我们要求单向加密。任何人都可以建议一种更好的方法吗

AES、DSA 和 Dygest-salt 加密方法?

我认为 Dygest-salt 用于一种方式,其他用于两种方式,但不确定哪种使用更安全。如果有人能指出这两者之间的性能比较,那就更好了。随意建议另一种算法(特定于一种方式)。

最佳答案

术语“单向加密”具有误导性。

AES对称加密算法(准确地说是 block cipher )的示例。谁拥有加密 key ,谁就可以解密。您通常不单独使用 block 密码,而是使用 mode of operation .

DSA根本不是加密算法。它是一个签名算法(或者实际上是三种算法的组合: key 生成、签名、验证),我可以用我的私钥对一段数据进行签名,每个人都可以用对应的公钥。我还需要在签名前对我的数据应用哈希函数。

(加密)哈希算法(也称为(加密)消息摘要)通常是无 key 函数,并减少(或多或少)任意大小的数据到一个固定大小的散列,这样就很难找到两个不同的输入导致相同的散列(通常还有更多的属性)。这是一种单向函数

对于密码存储,我们不使用加密,而是使用一种散列形式,其中包括随机,因此具有不同盐的相同密码会产生不同的结果。盐本身与哈希一起存储,因此可用于稍后检查密码。 (这可能就是您所说的 Digest-Salt。) Also, you should not use a normal fast hash function, but a slow one.

关于java - 单向加密的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10926155/

相关文章:

c++ - 加密/解密字节数组 Crypto++

java - 需要有关 AES CTR 密码 python 与 Java 的建议

java - 无法在 Android 中解密加密的短信(在 2.2 操作系统中加密)...(尝试在 2.3 操作系统中解密)

java - 具有特定填充的 RSA 最大消息长度

java - JSON解析无值

java - MySQL 查询在大型实例上发生变化 :

java - 使 Struts2 能够处理普通/手写的 HTML 表单

powershell - 使用PowerShell的Coinspot API

spring - 我如何加密密码将其插入数据库并在比较后何时连接?

java - Ant:创建没有路径信息的 tar?