加解密算法 RSA、AES、DES、MD5使用实例和区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yw8886484/article/details/88112861

    了解两个问题,什么是加密算法、为什么要使用加密。加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。为什么要加密,保障数据的安全和完整性防止被他人篡改。

1、摘要算法

数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。数据摘要算法也被称为哈希(Hash)算法、散列算法。

常用的摘要算法有MD5、SHA1、SHA256 , 加密后分别输出128bit、160bit、256bit。

1.1 MD5

//md5
public void md5(String str) {
    try {
        MessageDigest md = MessageDigest.getInstance("MD5");
        md.update(str.getBytes());
        String md5 = bytes2Hex(md.digest());
        System.out.println(md5);
    } catch (NoSuchAlgorithmException e) {
    }
}
//转16进制
private static String bytes2Hex(byte[] byteArray) {
    String resultValue = "";
    String strTemp = null;
    for (int i = 0; i < byteArray.length; i++) {
        strTemp = (Integer.toHexString(byteArray[i] & 0xFF));
        if (strTemp.length() == 1) {
            resultValue += "0";
        }
        resultValue += strTemp;
    }
    return resultValue;
}

1.2 SHA1

//SHA1摘要
public static void sha1(String str) {
    try {
        MessageDigest md = MessageDigest.getInstance("SHA-1");
        md.update(str.getBytes());
        String md5 = bytes2Hex(md.digest());
        System.out.println(md5);
    } catch (NoSuchAlgorithmException e) {
    }
}

1.3 SHA256

//SHA256摘要
public static void sha256(String str) {
    try {
        MessageDigest md = MessageDigest.getInstance("SHA-256");
        md.update(str.getBytes());
        String md5 = bytes2Hex(md.digest());
        System.out.println(md5);
    } catch (NoSuchAlgorithmException e) {
    }
}

摘要算法关键代码、只需要修改 MessageDigest.getInstance(“SHA-256”) 即可实现各种摘要算法

MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(str.getBytes());
byte[]bytes = md.digest()
bytes2Hex(bytes);

来自:www.zhuanfang.org

猜你喜欢

转载自blog.csdn.net/yw8886484/article/details/88112861
今日推荐