java - 我应该在哪里直接(通过查询)或通过前端的函数在数据库列中使用 MD5 哈希?

标签 java mysql database md5

In registration form of my web application I have a password field. Now when I am inserting the data in the database on the submit button.

方法一:

我使用md5函数生成它的哈希值,然后将加密数据保存到数据库中。

方法二:

我使用MySql中的查询直接将特定列的数据转换成哈希值。

Which approach has less overhead and which one is more secure across the network. Please help?

使用的数据库:MySql 5,前端:Java

最佳答案

先将数据加密后再插入mysql会比较安全。否则,可能会通过监听应用服务器和数据库之间的流量来“嗅探”数据。

使用 MD5 时要记住的另一点是使用“salt”值。如果不使用盐,MD5 容易受到暴力攻击。 使用盐意味着在计算 MD5 并保存到数据库之前向用户输入的值添加任意字符串。

例如,如果用户输入的值为“ABC”,而您的盐值为“12345”,则您将为“ABC12345”计算MD5。

关于java - 我应该在哪里直接(通过查询)或通过前端的函数在数据库列中使用 MD5 哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11358854/

相关文章:

php - 如何一次替换多个WordPress帖子标题中的特定单词?

MySQL 回调 - 有这样的东西吗?

java - 如何将响应与 Netty 中的请求关联起来?

java - 如何使用 spring jpa 编写查询来从数据库中获取与我们传递的字符串匹配的所有行?

java - 用于 DAO JUnit 测试的 SpringBootTest

database - Grails 一直在删除我的表

php - php获取MS Access的sum()查询结果的方法

java - 从 IntroSort 转到 MergeSort

php mysqli_insert_id($link) 转换/保留

database - 是否可以删除超过某个时间点的所有数据库更改?