java中使用MD5加密算法进行加密

 我来答
科创17
2022-10-24 · TA获得超过5920个赞
知道小有建树答主
回答量:2846
采纳率:100%
帮助的人:177万
展开全部

  在各种应用系统的开发中 经常需要存储用户信息 很多地方都要存储用户密码 而将用户密码直接存储在服务器上显然是不安全的 本文简要介绍工作中常用的 MD 加密算法 希望能抛砖引玉

   (一)消息摘要简介

  一个消息摘要就是一个数据块的数字指纹 即对一个任意长度的一个数据块进行计算 产生一个唯一指印(对于SHA 是产生一个 字节的二进制数组) 消息摘要是一种与消息认证码结合使用以确保消息完整性的技术 主要使用单向散列函数算法 可用于检验消息的完整性 和通过散列密码直接以文本形式保存等 目前广泛使用的算法有MD MD SHA

  消息摘要有两个基本属性

  两个不同的报文难以生成相同的摘要难以对指定的摘要生成一个报文 而可以由该报文反推算出该指定的摘要代表 美国国家标准技术研究所的SHA 和麻省理工学院Ronald Rivest提出的MD

   (二)对字符串进行加密

    /** *//**利用MD 进行加密     * @param str  待加密的字符串     * @return  加密后的字符串     * @throws NoSuchAlgorithmException  没有这种产生消息摘要的算法     * @throws UnsupportedEncodingException       */    public String EncoderByMd (String str) throws NoSuchAlgorithmException   UnsupportedEncodingException {        //确定计算方法        MessageDigest md =MessageDigest getInstance( MD );        BASE Encoder base en = new BASE Encoder();        //加密后的字符串        String newstr=base en encode(md digest(str getBytes( utf )));        return newstr;    }

  调用函数 String str=

  System out println(EncoderByMd (str))

  输出 eB eJF ptWaXm bijSPyxw==

   (三)验证密码是否正确

    /** *//**判断用户密码是否正确     * @param newpasswd  用户输入的密码     * @param oldpasswd  数据库中存储的密码--用户密码的摘要     * @return     * @throws NoSuchAlgorithmException     * @throws UnsupportedEncodingException     */    public boolean checkpassword(String newpasswd String oldpasswd) throws NoSuchAlgorithmException   UnsupportedEncodingException {        if(EncoderByMd (newpasswd) equals(oldpasswd))            return true;        else            return false;    } lishixinzhi/Article/program/Java/hx/201311/26374

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式