信息加密——消息摘要与数字签名

本文介绍了消息摘要算法,特别是MD5,用于生成数据指纹,确保数据完整性。此外,详细阐述了数字签名的概念,它是公钥加密技术和消息摘要的结合,用于验证信息真伪和发送者身份。
摘要由CSDN通过智能技术生成

信息加密——消息摘要与数字签名


前言

`消息摘要算法是密码学算法中非常重要的一个分支,它用于生成数据的"指纹",具有不可逆性。消息摘要算法也被称为哈希(Hash)算法或散列算法。
消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密。著名的摘要算法有MD5算法和SHA-1算法及其大量的变体。

一、消息摘要

1.MD5算法

MD5 = Message Digest Algorithm V5
中文名为:消息摘要算法第五版
由MD2、MD3、MD4发展而来
是最常用的一种散列函数,用以提供消息完整性保护
无法从结果还原出原始信息
算法的输入输出
输入:任何长度的字节流
输出:128位二进制(常以32位十六进制字符显示)
关键点:输入略微变化,输出即发生极大变化(雪崩效应)

#include<iostream>
#include<string>
using namespace std;
#define shift(x, n) (((x) << (n)) | ((x) >> (32-(n))))//右移的时候,高位一定要补零,而不是补充符号位
#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))    
#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
#define H(x, y, z) ((x) ^ (y) ^ (z))
#define I(x, y, z) ((y) ^ ((x) | (~z)))
#define A 0x67452301
#define B 0xefcdab89
#define C 0x98badcfe
#define D 0x10325476
//strBaye的长度
unsigned int strlength;
//A,B,C,D的临时变量
unsigned int atemp;
unsigned int btemp;
unsigned int ctemp;
unsigned int dtemp;
//常量ti unsigned int(abs(sin(i+1))*(2pow32))
const unsigned int k[]={
   
        0xd76aa478,0xe8c7b756,0x242070db,0xc1bdceee,
        0xf57c0faf,0x4787c62a,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值