欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

加密算法的分类

程序员文章站 2022-07-09 21:53:04
...

重点在加密解密的 接口调用和应用,而不是加密解密算法的本身的实现,【像 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;
}

效果:

加密算法的分类

 

相关标签: 密码