首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Java还是MySQL实现密码加密?

用Java还是MySQL实现密码加密?
EN

Stack Overflow用户
提问于 2012-05-22 13:55:11
回答 3查看 14.7K关注 0票数 0

我正在尝试在用户注册中使用MD5加密密码,并在登录时进行匹配。我使用Mysql作为我的数据库。Mysql也提供了将密码转换为密码的选项(即MD5(MD5))..我想知道哪种加密方式更好..它是使用java代码还是mysql查询..

提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2012-05-22 13:59:03

不存储密码。如果它曾经在磁盘上,那么它可能会被窃取。相反,存储密码散列。使用正确的,如、或。

这里有一些你必须看的有用的链接:

希望这能有所帮助。

票数 9
EN

Stack Overflow用户

发布于 2012-05-22 13:57:19

由于逻辑上您的应用程序和数据库可以存在于两个单独的物理盒子中,因此如果您在应用层加密密码,然后将其移动到数据库中,这是一个更安全的选择。

从应用程序设计的角度来看,你应该考虑加密,在非常早的时候对你的密码进行哈希处理,这样你的密码就不会像普通字符串一样从一层移动到另一层。

离题:

MD5容易出现collision attack,您可以考虑使用salt,如追加电子邮件或动态生成的值来防止Rainbow Table

definitely-safest-password-storage-scheme

票数 3
EN

Stack Overflow用户

发布于 2013-01-08 02:35:43

下面是我用MD5进行加密的算法,它返回加密后的输出。

代码语言:javascript
复制
   public class CryptWithMD5 {
   private static MessageDigest md;

   public static String cryptWithMD5(String pass){
    try {
        md = MessageDigest.getInstance("MD5");
        byte[] passBytes = pass.getBytes();
        md.reset();
        byte[] digested = md.digest(passBytes);
        StringBuffer sb = new StringBuffer();
        for(int i=0;i<digested.length;i++){
            sb.append(Integer.toHexString(0xff & digested[i]));
        }
        return sb.toString();
    } catch (NoSuchAlgorithmException ex) {
        Logger.getLogger(CryptWithMD5.class.getName()).log(Level.SEVERE, null, ex);
    }
        return null;


   }
}

你不能解密MD5,但你可以比较输出,因为如果你把相同的字符串放在这个方法中,它将返回你想要解密的相同的加密output.If,你需要使用的SHA.You永远不会对始终使用MD5的用户password.For使用描述。这是一个例外,redundant.It永远不会抛出it.When你添加密码到数据库,你添加这个方法returns.To登录,你比较它们。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10696432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档