MD5和SHA-512的单向加密

单向加密

这里仅实现了MD5和SHA-512的单向加密,这些单向加密均已被前辈们破解

public class Test {
    public static  String encrypt (String str,String type) throws NoSuchAlgorithmException {
        /* MessageDigest,信息摘要,用来单项加密
        类型:MD5,SHA-1,SHA-256,SHA-512
         */
        MessageDigest md=MessageDigest.getInstance(type);
        /*  update方法:负责加密,参数是字节数组
            字符串转字节数组:字符串.getBytes(),字符串.getBytes("编码格式")
            md.update(str.getBytes(StandardCharsets.UTF_8));
            输出Arrays.toString(bs) 结果为:[6, -32, -26, 99, 125, 39, -78, 98, 42, -75, 32, 34, -37, 113, 60, -30]

         */
        md.update(str.getBytes());
//        获取加密之后的数据
        byte[] bs=md.digest();
        String result="";
        for (byte b:bs) {
            //format("%02X",b);将b转为两位16进制
            result+=String.format("%02X",b);
        }
        return  result;
    }
    public static void main(String[] args) throws NoSuchAlgorithmException {

        String str="Hello World!";
        String result=encrypt(str,"SHA-512");
        //MD5输出结果为:ED076287532E86365E841E92BFC50D8C
        //SHA-512输出结果为:861844D6704E8573FEC34D967E20BCFEF3D424CF48BE04E6DC08F2BD58C729743371015EAD891CC3CF1C9D34B49264B510751B1FF9E537937BC46B5D6FF4ECC8
        /*
        登录时密码验证:
        将用户名和密码传给服务端时,将传入的密码做加密,然后和数据库中的密码匹配
         */
        System.out.println(result);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值