数据安全-完整性
信息完整性可通過提取并對比消息摘要的方式來實現。消息摘要就是根據一定的運算規則對原始數據進行某種形式的信息提取,通過消息摘要后的消息摘要的長度總是固定的,它也叫做數據指紋,因為它可以唯一的標識一段數據。常見的摘要算法有:sha1、sha256、md5、crc32等。
?
下面例子演示了SHA256摘要算法:
public class SHA256 {/*** 實現SHA256加密* @param str 加密后的報文* @return*/public static String getSHA256(String str) {MessageDigest messageDigest;String encodestr = "";try {messageDigest = MessageDigest.getInstance("SHA-256");messageDigest.update(str.getBytes("UTF-8"));encodestr = byte2Hex(messageDigest.digest());} catch (NoSuchAlgorithmException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {e.printStackTrace();}return encodestr;}private static String byte2Hex(byte[] bytes) {StringBuffer stringBuffer = new StringBuffer();String temp = null;for (int i = 0; i < bytes.length; i++) {temp = Integer.toHexString(bytes[i] & 0xFF);if (temp.length() == 1) {stringBuffer.append("0");}stringBuffer.append(temp);}return stringBuffer.toString();} }/*** 測試SHA256摘要算法*/ @Test public void test2() throws Exception {String content = "你好世界";System.out.println(content + ": 第一次摘要后的字符串為:" + SHA256.getSHA256(content));System.out.println(content + ": 第二次摘要后的字符串為:" + SHA256.getSHA256(content)); }從上面的內容我們可以了解到摘要算法的特性,發送方和接收方可以約定使用相同的摘要算法對原文進行摘要運算,雙方得出的消息摘要若一致,說明數據在傳輸過程中沒有被篡改。
總結