xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 7KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-05-13
  • 語言: C/C++
  • 標簽: HMAC??SHA256??C語言??

資源簡介

本文檔為HMAC-SHA256的C語言實現(xiàn)代碼,本人親測結(jié)果與標準加密結(jié)果一致,可供學習HMAC,SHA-256安全算法相關(guān)的人員參考

資源截圖

代碼片段和文件信息

/********************************************************************
??P-CODE:
????function?hmac?(key?message)?{
????????if?(length(key)?>?blocksize)?{
????????????key?=?hash(key)?//?keys?longer?than?blocksize?are?shortened
????????}
????????if?(length(key)?????????????//?keys?shorter?than?blocksize?are?zero-padded?(where?∥?is?concatenation)
????????????key?=?key?∥?[0x00?*?(blocksize?-?length(key))]?//?Where?*?is?repetition.
????????}

????????o_key_pad?=?[0x5c?*?blocksize]?⊕?key?//?Where?blocksize?is?that?of?the?underlying?hash?function
????????i_key_pad?=?[0x36?*?blocksize]?⊕?key?//?Where?⊕?is?exclusive?or?(XOR)

????????return?hash(o_key_pad?∥?hash(i_key_pad?∥?message))?//?Where?∥?is?concatenation
????}
********************************************************************/

#include?
#include?“hmac_sha256.h“
#include?“sha256.h“

/*?常量?*/
#define?B?64 ????????????????//?明文分塊長度?byte
#define?I_PAD?0x36 ????????????//?內(nèi)部填充
#define?O_PAD?0x5C ????????????//?外部填充
#define?KEY_IOPAD_SIZE?64???????//?填充字串長度?byte
#define?SHA256_DIGEST_SIZE?32 //?SHA-256摘要輸出大小?32-byte

/*?帶符號整數(shù)類型?*/
typedef???signed??????????char?int8_t;
typedef???signed?short?????int?int16_t;
typedef???signed???????????int?int32_t;

/*?無符號整數(shù)類型?*/
typedef?unsigned??????????char?uint8_t;
typedef?unsigned?short?????int?uint16_t;
typedef?unsigned???????????int?uint32_t;


/********************************************************************
?*?將無符號?4-bit?二進制數(shù)據(jù)表示為十六進制形式.
?*?如?{1010}?將轉(zhuǎn)換為?{‘A‘}.
?*
?*?參數(shù)說明:
?*??hb:?????????32-byte?摘要信息
?*?返回值:
?*??以?ASCII碼?表示的十六進制數(shù)?[0-9A-F]
?********************************************************************/
char?bin2hex(unsigned?char?hb)
{
????hb?=?hb?&?0xF;
????return?(char)(hb?}

/********************************************************************
?*?將?256-bit?摘要信息?轉(zhuǎn)換為?64位?char數(shù)組?每位字符表示一個十六進制數(shù).
?*?如?{0x5C?0x5C?...??0x5C}?將轉(zhuǎn)化為?{‘5‘?‘C‘?‘5‘?‘C‘?...??‘5‘?‘C‘}.
?*
?*?參數(shù)說明:
?*??digest:?????32-byte?摘要信息
?*??digest_hex:?出參?轉(zhuǎn)換后的?64位?字符?每位表示一個十六進制數(shù)?以?ASCII碼?形式存儲
?********************************************************************/
void?digest2hex(unsigned?char?digest[HMAC_SHA256_DIGEST_SIZE]?
????char?digest_hex[HMAC_SHA256_DIGEST_SIZE*2])
{
????for?(int?i?=?0;?i?????????digest_hex[i?*?2]?=?bin2hex(digest[i]?>>?4);
????????digest_hex[i?*?2?+?1]?=?bin2hex(digest[i]);
????}
}

/********************************************************************
?*?HMAC-SHA256?摘要生成算法:
?*??HMAC-SHA256(K?M)?==?SHA256((K?^?opad)?∥?SHA256((K?^?ipad)?∥?M))
?* ????K:??????密鑰
?*??????M:??????消息
?* ????ipad:???內(nèi)部填充字符串
?* ????opad:???外部填充字符串
?*??????∥:??????數(shù)據(jù)連接操作
?*
?* 函數(shù)參數(shù):
?*??????digest:?出參?輸出?32-byte?加密結(jié)果
?* ????msg:????要加密的數(shù)據(jù)
?*??????msgLen:?數(shù)據(jù)長度
?*??????key:????加密因子
?*??????keyLen:?加密因子長度
?********************************************************************/
void?hmac_sha256(unsigned?ch

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????2283??2020-03-10?22:43??sha256.h

?????文件???????2503??2020-03-12?08:28??Test.cpp

?????文件???????5191??2020-03-12?05:43??hmac_sha256.c

?????文件???????1395??2020-03-12?05:44??hmac_sha256.h

?????文件???????9604??2020-03-12?03:30??sha256.c

-----------?---------??----------?-----??----

????????????????20976????????????????????5


評論

共有 條評論