MD5加密实现

package com.pb;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Scanner;
/*
 * 验证MD5
 * 1.初始化MessageDigest信息摘要对象
 * 2.传入需要计算的字符串更新摘要信息
 * 3.计算信息摘要
 * 4.将byte[] 转换为找度为32位的16进制字符串
 */
public class MD5 {
    /*
     * 生成md5 有传入参数字符串
     */
    public void generateMD5(String input){
        
        try {
            //1.初始化MessageDigest信息摘要对象,并指定为MD5不分大小写都可以
            MessageDigest md=MessageDigest.getInstance("md5");
             //2.传入需要计算的字符串更新摘要信息,传入的为字节数组byte[],
            //将字符串转换为字节数组使用getBytes()方法完成
            //指定时其字符编码 为utf-8
            md.update(input.getBytes("utf-8"));
             //3.计算信息摘要digest()方法
            //返回值为字节数组
            byte [] hashCode=md.digest();
             //4.将byte[] 转换为找度为32位的16进制字符串
                //声明StringBuffer对象来存放最后的值
            StringBuffer sb=new StringBuffer();
            //遍历字节数组
            for(byte b:hashCode){
                //对数组内容转化为16进制,
                sb.append(Character.forDigit(b>>4&0xf, 16));
                //换2次为32位的16进制
                sb.append(Character.forDigit(b&0xf, 16));
            }
            System.out.println("加密后的结果是:"+sb.toString());
        } catch (NoSuchAlgorithmException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        //声明加密MD5类的对象
        MD5 md5=new MD5();
        //使用Scanner来输入一个字符
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入要加密的内容:");
        String input = scanner.nextLine();
        //调用加密方法
        md5.generateMD5(input);
    }
   
}
请输入要加密的内容:
学习MD5加密过程
加密后的结果是:b826cdac46f01dcc8ccc60a76cebf858
全部评论

相关推荐

03-29 15:52
学而思_HR
好未来前端实习一面面经1.自我介绍2.看代码说结果,变量提升相关3.浮点数精度问题,通过过先转换为整数如果两个浮点数的长度不相等怎么解决?4.forEach、map、for循环之间的区别是什么?5.看代码说结果,事件循环相关6.场景题:在做tab的切换,一个是已读tab(展示已读列表)一个是未读的tab(展示未读列表),每次点击一个tab的时候都要去发送请求去获取信息,当快速切换按钮的时候会发发生什么问题?7.你之前是做B端这些的吧?主要是做哪些?相对来说你认为做的比较复杂的功能?8.做过哪些性能优化?反问整体下来感觉问的八股还是比较少的吧,大多数都是面试官写代码然后让我说结果,然后再解释为什么这样说,还有就是场景题和项目了。面试官人很好就算一些答不出来还是会去引导回答出来。作者:芝士小堡链接:https://www.nowcoder.com/feed/main/detail/b9a71d03667146ddb552852ad308752d?sourceSSR=users内推码:DSXPprHa内推有26个不同岗位,待遇都比较好,感兴趣的可以使用内推码投递,欢迎随时咨询进度!大家可以在评论区留下姓名缩写及投递岗位,我来查下后台有没有内推成功!内推链接https://app.mokahr.com/m/campus_apply/tal/148080?recommendCode=DSXPprHa&hash=%23%2Fjobs内推码:DSXPprHa#数据库##实习##前端##好未来##面试##内推##学而思内推##好未来面经#
学而思
|
校招
|
22个岗位
点赞 评论 收藏
分享
真实工作体验!本人双非本,去年入职【工作感受】部门氛围很轻松,ld和其他领导都很和善,平时在电梯里遇见还能闲聊两句。部门中午晚上都一起在食堂吃饭mt对新员工和实习生都很贴心(亲眼所见,实习生实习结束后mt还给实习生看简历讲项目讲亮点),我试用期期间mt和ld都给了我超级多的帮助和建议,进步飞快!部门经常会有一些业务技术汇报,学到了很多东西!!【工作时间】早上8:30 -9:30弹性晚上5:00-6:00弹性每周一二四可能要稍微加一点班,周三周五不加班最后贴几张食堂的美食,食堂的伙食是真的不错!🔥海康威视2025届春招补招+26届超新星暑期实习启动啦【关于我们】海康威视成立于2001年,是一家专注技术创新的科技公司,致力于将物联感知、人工智能、大数据技术服务于干行百业,引领智能物联新未来🔥【招聘岗位】算法/网络安全/大数据类;器件电路类;软件/嵌入式类;硬件/结构类;营销/技术支持类;测试/支撑类;供应链类;体验设计类;综合类【工作地点】杭州、武汉、西安、成都、上海、北京、石家庄、全国90+城市和海外多地【福利待遇】有竞争力的薪资+影响世界的宽广舞台+持续可期的成长回报+踏实专注的做事氛围+接轨市场的创新实践👇【投递链接】👇http://campushr.hikvision.com【内推码】2194TX(简历优先筛选,后续有流程上的问题欢迎随时联系,本人全程跟进流程,前端的同学可以帮忙看简历!) #牛友职场人脉来了# #实习#
海康威视
|
实习
|
超多精选岗位
点赞 评论 收藏
分享
评论
2
8
分享

创作者周榜

更多
牛客网
牛客企业服务