加密算法的分类

重点在加密解密的 接口调用和应用,而不是加密解密算法的本身的实现,【像 AES  RSA ECC 这些算法都是 数学类的硕士博士研究的东西,作为程序员 ,大致的了解一下思路就行了,会调用接口,当然有这个 精力和能力的程序员还是可以详细的了解一下的

一.对称加密:

  • XOR【这篇介绍 】
  • DES(可破解得,过时的), 3DES【DES -> AES过度得中间产物】
  • AES
  • Blowfish
  • twofish 

二.非对称加密:

  • RSA
  • Elgamal
  • 背包算法
  • Rabin
  • D-H
  • ECC(椭圆曲线加密算法)

三.散列算法:

  • MD5 【Message-Digest Algorithm 5】
  • SHA1  SHA2(SHA-256,512) Secure Hash Algorithm

 

四.介绍第一种 异或 【XOR】对称加密算法。【不许笑画的臭】

代码Demo

#include <iostream>
#include <Windows.h>

using namespace std;


// data是 密文 传进去就是 解密 , 是原文就是加密 
char* dataByXor(const char* data, int dataLen, const char* key, int keyLen);

int main(int argc, const char* argv[])
{
	const char* data = "hello world";
	const char* key = "12345678";
	
	char* dstData = dataByXor(data, strlen(data), key, strlen(key));
	cout << "加密后:" << dstData << endl;
	
	char *srcData = dataByXor(dstData, strlen(data), key, strlen(key));
	cout << "解密后:" << srcData << endl;
	
	delete[] dstData; dstData = nullptr;
	delete[] srcData; srcData = nullptr;
	
	system("pause");
	return 0;
}

char*
dataByXor(const char* data, int dataLen, const char* key, int keyLen)
{
	int i;
	char* dstData = new char[dataLen];
	for (i = 0; i < dataLen; ++i) {
		dstData[i] = (char)(data[i] ^ key[i % keyLen]);
	}
	return dstData;
}

效果:

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值