用异或操作,实现简单的密码加解密处理

原创 2016年08月28日 23:55:07

用异或操作,实现简单的密码加解密处理


 异或是一种基于二进制的位运算,用符号XOR或者 ^ 表示,

其运算法则是对运算符两侧数的每一个二进制位,同值取0,异值取1


可以简单理解它为一个不进位的二进制加法:

0 + 0 = 0

1 + 1 = 0  (相当于高位的1 没进位)

1 + 0 = 1

它有如下性质:


1、交换律

2、结合律(即(a^b)^c == a^(b^c))

3、对于任何数x,都有x^x=0,x^0=x

4、自反性 A XOR B XOR B = A xor  0 = A

在此处,就利用了异或的自反性,与一个Key进行异或进行加密,再次异或实现解密处理

#include <stdio.h>
#include <string.h>

int nKey = 1899;

int main()
{
	char psw[] = "ae+65&5汉2";
	char* pTemp = psw;
	printf("加密前的密码: %s\n", psw);
	for (int i = 0; i< strlen(psw); i++)
	{
		*pTemp++ ^= nKey;
	}
	printf("加密后的密码: %s\n", psw);

	pTemp = psw;
	for (int i = 0; i < strlen(psw); i++)
	{
		*pTemp++ ^= nKey;
	}
	printf("解密的密码: %s\n", psw);
	return 0;
}

\

类别:   C/C++教程, 教程 Edit

http://qzher.com/?p=376

版权声明:更多文件,请访问 qzher.com 致力于良心IT培训,深圳QQ群:326023167

简单异或加解密算法

  • 2013年06月05日 11:12
  • 2KB
  • 下载

Druid连接池自定义数据库密码加解密的实现

1、替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。 2、可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的...

【密码学】DES加解密原理及其Java实现算法

DES简介 DES(Data Encryption Standard)是对称加解密算法的一种,由IBM公司W.Tuchman和C.Meyer在上个世纪70年代开发。 该算法使用64位密钥...

【密码学】RSA加解密原理及其Java实现算法

密钥生成RSA的密钥通过如下步骤生成: 选取两个不同的质数p和q为了安全考虑,p和q应该随机选取,并且具有相似的数量级。如果p和q仅仅通过几个数字使得长度不同,那么分解因子更加困难 计算n = pqn...

算法实现: OTP(One-Time Pad) 一次一密密码本 加解密

按照>上描述的OTP算法, 实现了一个OTP算法加解密工具~ src : srcOtpCipher_V2013_0111_0517.rar, 这版的明文只能是 'a'~'z', 以后会改成支...

Druid连接池自定义数据库密码加解密的实现

1 Druid官方提供的数据库密码加密 1.1执行命令加密数据库密码 在命令行中执行如下命令: java -cp druid-1.0.16.jar com.alibaba.druid...

用C++实现Vigenre密码得加解密

#include #include using namespace std; #define len ('a'-'A') class Vigenre { public: ...

【密码学】RC4加解密原理及其Java和C实现算法

RC4历史RC4由Ras Rivest于1987年由RSA Security设计。当它被正式称为“Rivest Cipher 4”时,RC首字母缩略词被理解为代表“Ron’s Code”。RC4最初是...

【密码学】AES加解密原理及其C++实现算法

AES简介 高级加密标准(Advanced Encryption Standard,AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DE...

使用Crypto++加解密类库实现密码管理系统

Crypto++是一个免费的加解密类库,集成了很多的加解密算法,如des, aes, rsa等基础加密算法。本文主要一下本人最近实现的一个密码管理器,编译环境是32位Ubuntu,主要实现了多用户系统...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用异或操作,实现简单的密码加解密处理
举报原因:
原因补充:

(最多只允许输入30个字)