Java的MD5加密 与Java异或加密,解密

本文介绍了一种使用Java实现的MD5加密方法及其应用实例,同时展示了异或加密的基本原理及如何通过两次加密达到解密的效果。通过具体的代码示例,读者可以了解这些加密方式的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MD5加密为不可逆加密:

/**
* <p>Title: MD5</p>
* <p>Description: </p>
* @author ZTC
*@date 2018年4月10日
* 2018年4月10日
*/
public class MD5 {
	/*** 
     * 字符串加密为MD5字符串
     */  
    public static String MD5(String str){  
        MessageDigest md5 = null;  
        try{  
            md5 = MessageDigest.getInstance("MD5");  //创建MD5加密使用的对象
        }catch (Exception e){  
            System.out.println(e.toString());  
            e.printStackTrace();  
            return "";  
        }  
        char[] charArray = str.toCharArray(); //将传来的字符转化为数组 
        byte[] byteArray = new byte[charArray.length]; //初始化byte数组 
        for (int i = 0; i < charArray.length; i++)  
            byteArray[i] = (byte) charArray[i];  
        byte[] md5Bytes = md5.digest(byteArray);  
        StringBuffer hexValue = new StringBuffer();  
        for (int i = 0; i < md5Bytes.length; i++){  
            int val = ((int) md5Bytes[i]) & 0xff;  //保证二进制的
            if (val < 16)  
                hexValue.append("0");  
            hexValue.append(Integer.toHexString(val));  
        }  
        return hexValue.toString();  
    }  


异或加密:

 /** 
     *  执行一次为加密,两次解密 
     */   
    public static String encrypt(String inStr){  

        char[] a = inStr.toCharArray();  
        for (int i = 0; i < a.length; i++){  
            a[i] = (char) (a[i] ^ 's');  //在Java中,a[i]^'s'的意思是数组a中下标为i的值按位异或字符s.
        }  
        String s = new String(a);  
        return s;  
    }  

测试:

  // 测试主函数  
    public static void main(String[] args) {  
        String s = new String("123456");  
        System.out.println("原始字符:" + s);  
        System.out.println("MD5加密后字符:" + MD5(s));  
        System.out.println("加密的字符:" + encrypt(s));  	
        System.out.println("解密的字符:" + encrypt(encrypt(s)));  
    } 
}

结果:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值