Console Library 8.0.0
A header-only library that makes C++ simple
Loading...
Searching...
No Matches
console::crypto::md5_impl Namespace Reference

MD5哈希算法的内部实现细节。 More...

Functions

uint32_t F (uint32_t x, uint32_t y, uint32_t z)
 MD5第一轮逻辑函数F。
uint32_t G (uint32_t x, uint32_t y, uint32_t z)
 MD5第二轮逻辑函数G。
uint32_t H (uint32_t x, uint32_t y, uint32_t z)
 MD5第三轮逻辑函数H。
uint32_t I (uint32_t x, uint32_t y, uint32_t z)
 MD5第四轮逻辑函数I。
uint32_t rotate_left (uint32_t x, uint32_t n)
 对32位无符号整数进行循环左移。
void transform (uint32_t *state, const uint8_t *block)
 对64字节的数据块执行MD5变换。

Variables

static constexpr uint32_t S [64]
 MD5算法中每轮循环使用的左移位数数组。
static constexpr uint32_t K [64]
 MD5算法中使用的常量K数组。

Detailed Description

MD5哈希算法的内部实现细节。

Warning
MD5算法已被证明存在碰撞漏洞,不建议用于安全敏感场景,仅用于兼容遗留系统。

Function Documentation

◆ F()

uint32_t console::crypto::md5_impl::F ( uint32_t x,
uint32_t y,
uint32_t z )
inline

MD5第一轮逻辑函数F。

Parameters
x输入值。
y输入值。
z输入值。
Returns
uint32_t 计算结果。

◆ G()

uint32_t console::crypto::md5_impl::G ( uint32_t x,
uint32_t y,
uint32_t z )
inline

MD5第二轮逻辑函数G。

Parameters
x输入值。
y输入值。
z输入值。
Returns
uint32_t 计算结果。

◆ H()

uint32_t console::crypto::md5_impl::H ( uint32_t x,
uint32_t y,
uint32_t z )
inline

MD5第三轮逻辑函数H。

Parameters
x输入值。
y输入值。
z输入值。
Returns
uint32_t 计算结果。

◆ I()

uint32_t console::crypto::md5_impl::I ( uint32_t x,
uint32_t y,
uint32_t z )
inline

MD5第四轮逻辑函数I。

Parameters
x输入值。
y输入值。
z输入值。
Returns
uint32_t 计算结果。

◆ rotate_left()

uint32_t console::crypto::md5_impl::rotate_left ( uint32_t x,
uint32_t n )
inline

对32位无符号整数进行循环左移。

Parameters
x待移位的整数。
n左移的位数。
Returns
uint32_t 循环左移后的结果。

◆ transform()

void console::crypto::md5_impl::transform ( uint32_t * state,
const uint8_t * block )
inline

对64字节的数据块执行MD5变换。

Parameters
state当前哈希状态,长度为4的数组。
block要处理的数据块,长度必须为64字节。

Variable Documentation

◆ K

uint32_t console::crypto::md5_impl::K[64]
staticconstexpr

MD5算法中使用的常量K数组。

◆ S

uint32_t console::crypto::md5_impl::S[64]
staticconstexpr

MD5算法中每轮循环使用的左移位数数组。