XOR加密(xor加密速度)

http://www.itjxue.com  2023-02-14 17:58  来源:未知  点击次数: 

VB加密解密

obyte(i) = 21 Xor obyte(i) '这里obyte应该是一个数字型的数组,Xor是异或操作,其特点是二进制数字每经过2次异或同一个值,会得到初始值。也就是说,如果你的密文是通过把原文异或21而得到的,那么将密文再次与21进行异或,就会得到原文。

temp(i) = Chr(obyte(i)) '这个是将Ascii数字转换为相应的字符。

假设A是一个字符,B是一个数字,那么:

如果Asc(A)=B,则

Chr(B)=A

Android加密算法总结

1.概念:

Base64是一种用64个字符(ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/)来表示二进制数据的方法,只是一种编码方式,所以不建议使用Base64来进行加密数据。

2.由来:

为什么会有Base64编码呢?因为计算机中数据是按ascii码存储的,而ascii码的128~255之间的值是不可见字符。在网络上交换数据时,比如图片二进制流的每个字节不可能全部都是可见字符,所以就传送不了。最好的方法就是在不改变传统协议的情况下,做一种扩展方案来支持二进制文件的传送,把不可打印的字符也能用可打印字符来表示,所以就先把数据先做一个Base64编码,统统变成可见字符,降低错误率。

3.示例:

加密和解密用到的密钥是相同的,这种加密方式加密速度非常快,适合经常发送数据的场合。缺点是密钥的传输比较麻烦。

1.DES

DES全称为Data Encryption Standard,即数据加密标准,是一种使用 密钥加密 的块算法。

DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。

2.3DES

3DES(或称为Triple DES)是三重 数据加密算法 (TDEA,Triple Data Encryption Algorithm)块密码的通称。是DES向AES过渡的加密算法,它使用3条56位的密钥对数据进行三次加密。是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法。比起最初的DES,3DES更为安全。

3.AES

AES全称Advanced Encryption Standard,即高级加密标准,当今最流行的对称加密算法之一,是DES的替代者。支持三种长度的密钥:128位,192位,256位。

AES算法是把明文拆分成一个个独立的明文块,每一个明文块长128bit。这些明文块经过AES加密器的复杂处理,生成一个个独立的密文块,这些密文块拼接在一起,就是最终的AES加密结果。

但是这里涉及到一个问题:假如一段明文长度是192bit,如果按每128bit一个明文块来拆分的话,第二个明文块只有64bit,不足128bit。这时候怎么办呢?就需要对明文块进行填充(Padding):

AES的工作模式,体现在把明文块加密成密文块的处理过程中。

加密和解密用的密钥是不同的,这种加密方式是用数学上的难解问题构造的,通常加密解密的速度比较慢,适合偶尔发送数据的场合。优点是密钥传输方便。

1.SHA

安全散列算法(英语:Secure Hash Algorithm,缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法,且若输入的消息不同,它们对应到不同字符串的机率很高。

SHA分为SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512五种算法,后四者有时并称为SHA-2。SHA-1在许多安全协定中广为使用,包括TLS和SSL、PGP、SSH、S/MIME和IPsec,曾被视为是MD5(更早之前被广为使用的杂凑函数)的后继者。但SHA-1的安全性如今被密码学家严重质疑;虽然至今尚未出现对SHA-2有效的攻击,它的算法跟SHA-1基本上仍然相似;因此有些人开始发展其他替代的杂凑算法。

2.RSA

RSA算法1978年出现,是第一个既能用于数据加密也能用于数字签名的算法,易于理解和操作。

RSA基于一个数论事实:将两个大素数相乘十分容易,但想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,即公钥,而两个大素数组合成私钥。公钥是可提供给任何人使用,私钥则为自己所有,供解密之用。

3.MD5

MD5信息摘要算法 (英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值,用于确保信息传输完整一致。具有如下优点:

XOR:异或加密,既将某个字符或者数值 x 与一个数值 m 进行异或运算得到 y ,则再用 y 与 m 进行异或运算就可还原为 x。

使用场景:

(1)两个变量的互换(不借助第三个变量);

(2)数据的简单加密解密。

用Excel公式做文本的异或加密(既然高手这么多,我放大招了)

可以试试用自定义函数

Function?x(a,?b)

????x?=?a?Xor?b

End?Function

加密技术07-消息认证码与数字签名

消息认证码(Message Authentication Code,简称 MAC)是一种能够识别通信对象发送的消息是否被篡改的认证技术,用于验证消息的完整性,以及对消息进行身份认证。消息认证码的算法中,最常用的是利用散列函数的 HMAC。HMAC 的构成不依赖于某一种具体的散列函数算法。消息认证码能够对通信对象进行认证,但无法对第三方进行认证。此外它也无法防止否认。

主要作用

HMAC 实现原理

HMAC 是一种使用散列函数来构造消息认证码的方法(RFC2014),其中 HMAC 的 H 就是 Hash 的意思。HMAC 中所使用的散列函数并不仅限于一种,任何高强度的散列函数都可以被用于 HMAC,如果将来设计出新的散列函数,也同样可以使用。

对 message 生成消息认证码可以表示为: hmac(message, secret, hash) ,secret 为共享密钥,hash 为所使用散列函数。

(1)密钥填充:如果密钥比散列函数的分组长度要短,就需要在末尾填充 0,直到其长度达到散列函数的分组长度为止。如果密钥比分组长度要长,则要用散列函数求出密钥的散列值,然后将这个散列值用作 HMAC 的密钥。

(2)填充后的密钥与 ipad 的 XOR:将填充后的密钥与被称为 ipad 的比特序列进行 XOR 运算。 ipad 是将 00110110 这一比特序列(即 16 进制的 36)不断循环反复直到分组长度所形成的比特序列,其中 ipad 的 i 是 inner(内部)的意思。XOR 运算所得到的值,就是一个和散列函数的分组长度相同,且和密钥相关的比特序列。这里我们将这个比特序列称为 ipadkey。

(3)与消息组合:将 ipadkey 与消息进行组合,也就是将和密钥相关的比特序列(ipadkey)附加在消息的开头。

(4)计算散列值:将(3)的结果输入散列函数,并计算出散列值。

(5)填充后的密钥与 opad 的 XOR:将填充后的密钥与被称为 opad 的比特序列进行 XOR 运算。opad 是将 01011100 这一比特序列(即 16 进制的 5C)不断循环反复直到达到分组长度所形成的比特序列,其中 opad 的 o 是 outer(外部)的意思。XOR 运算所得到的结果也是一个和散列函数的分组长度相同,且和密钥相关的比特序列,这里我们将这个比特序列称为 opadkey。

(6)与散列值组合:将(4)的散列值拼在 opadkey 后面。

(7)将(6)的结果输入散列函数,并计算出散列值。这个散列值就是最终的 MAC 值。

对消息认证码的攻击

关于防止重放攻击的方式

消息认证码无法解决的问题

由于 MAC 值发送者和接受者都能生成,所以接受者如果要向第三方验证者证明消息的来源为发送者,第三方验证者是无法证明的,因为接受者也是可以生成 MAC 值的;第三方验证者无法判断发送者和接受者谁的主张才是正确的,也就是说,用消息认证码无法防止否认。

数字签名是一种能够对第三方进行消息认证,并能够防止通信对象做出否认的认证技术。数字签名的算法包括 RSA,ELGamal,DSA,椭圆曲线 DSA 等。公钥基础设施(PKI)中使用的证书,就是对公钥加上认证机构的数字签名收构成的。要验证公钥的数字签名,需要通过某种途径获取认证机构自身的合法公钥。

数字签名的方法

直接对消息签名的方法比较容易理解,但实际上并不会使用;对消息的散列值签名的方法稍微复杂一点,但实际中我们一般都使用这种方法。

对数字签名的攻击

数字签名无法解决的问题

用数字签名既可以识别出篡改和伪装,还可以防止否认。也就是说,我们同时实现了确认消息的完整性、进行认证以及否认防止。

然而,要正确使用数字签名,有一个前提,那就是用于验证签名的公钥必须属于真正的发送者。即使数字签名算法再强大,如果你得到的公钥是伪造的,那么数字签名也会完全失效。

为了能够确认自己得到的公钥是否合法,我们需要使用证书。所谓证书,就是将公钥当作一条消息,由一个可信的第三方对其签名后所得到的公钥。

设计一种很难被破解的异或加密方法??

按现在的cpu速度,哪怕不用电脑,用现在手机的cpu都绝对可以在1秒内破解出来,这个所谓的加密操作实际上等于0 除非你的文件内容原文就是不可读的(这样不管破解成功还是失败,破解者都没法知道,即使成功了看见的解密结果也是个乱码。。。囧。。所以不可能破解到) 异或加密是强度极低的一种方式,除非极长的密钥,希望获得比较靠谱的加密,还是分组交换式加密方案可取,比如DES加密。

(责任编辑:IT教学网)

更多
上一篇:没有了

推荐其他WEB语言文章