日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python hmac_Python实现的HMacMD5加密算法示例

發布時間:2025/4/5 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python hmac_Python实现的HMacMD5加密算法示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文實例講述了Python實現的HMacMD5加密算法。分享給大家供大家參考,具體如下:

什么是 HMAC-MD5?

1、比如你和對方共享了一個密鑰K,現在你要發消息給對方,既要保證消息沒有被篡改,又要能證明信息確實是你本人發的,那么就把原信息和使用K計算的HMAC的值一起發過去。對方接到之后,使用自己手中的K把消息計算一下HMAC,如果和你發送的HMAC一致,那么可以認為這個消息既沒有被篡改也沒有冒充。

2、MD5就是通過散列對要輸出的數據進行摘要,接收到數據時,再同樣進行MD5散列,與給定的MD5散列值比較,一致不一致就很清楚了。通常來說,傳輸的數據和MD5是不同的渠道給出的,比如網頁上顯示MD5,下載鏈接是某個鏡像網站的。如果要通過同一個渠道發送數據和散列值的話(比如消息認證碼),就要考慮數據和MD5同時被篡改的問題,如果第三方修改了數據,然后進行MD5散列,并一塊發給接收方,接收方并不能察覺到數據被篡改。HMAC-MD5就可以用一把發送方和接收方都有的key進行計算,而沒有這把key的第三方是無法計算出正確的散列值的,這樣就可以防止數據被篡改。

python 版:

#coding:utf-8

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

import hmac

import hashlib

####################設置Key值##############

ekey = 'laidefa'

###############輸入數據############

to_enc = '{"name":"zhangsan"}'

enc_res = hmac.new(ekey, to_enc, hashlib.md5).hexdigest()

print enc_res

輸出結果:

"D:\Program Files\Python27\python.exe" D:/PycharmProjects/learn2017/hmacmd5.py

2cbb94ce78b35e4030851c4d40dacf12

Process finished with exit code 0

java版:

package tom;

import java.security.MessageDigest;

import javax.crypto.KeyGenerator;

import javax.crypto.Mac;

import javax.crypto.SecretKey;

import javax.crypto.spec.SecretKeySpec;

/**

* 基礎加密組件

* @version 1.0

*/

public class Hmacmd5 {

/**

* MAC算法可選以下多種算法

*

*

* HmacMD5

* HmacSHA1

* HmacSHA256

* HmacSHA384

* HmacSHA512

*

*/

public static final String KEY_MAC = "HmacMD5";

/**

* HMAC加密

*

* @param data

* @param key

* @return

* @throws Exception

*/

public static byte[] encryptHMAC(byte[] data, String key) throws Exception {

SecretKey secretKey = new SecretKeySpec(key.getBytes(), KEY_MAC);

Mac mac = Mac.getInstance(secretKey.getAlgorithm());

mac.init(secretKey);

return mac.doFinal(data);

}

/*byte數組轉換為HexString*/

public static String byteArrayToHexString(byte[] b) {

StringBuffer sb = new StringBuffer(b.length * 2);

for (int i = 0; i < b.length; i++) {

int v = b[i] & 0xff;

if (v < 16) {

sb.append('0');

}

sb.append(Integer.toHexString(v));

}

return sb.toString();

}

public static void main(String[] args)throws Exception{

String inputStr = "{\"name\":\"zhangsan\"}";

byte[] inputData = inputStr.getBytes();

String key = "laidefa";

System.out.println(Hmacmd5.byteArrayToHexString(Hmacmd5.encryptHMAC(inputData, key)));

}

}

輸出結果:

2cbb94ce78b35e4030851c4d40dacf12

PS:關于加密解密感興趣的朋友還可以參考本站在線工具:

在線MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:http://tools.jb51.net/password/hash_md5_sha

希望本文所述對大家Python程序設計有所幫助。

總結

以上是生活随笔為你收集整理的python hmac_Python实现的HMacMD5加密算法示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。