当前位置: 技术问答>linux和unix
关于RC4加密算法的疑问
来源: 互联网 发布时间:2016-11-13
本文导语: 群里的哪位高手对RC4算法了解一些啊?听我的一个同事说RC4算法是一个流加密算法,加密和解密的算法是完全相同的,一般的加密和解密都调用同一个函数就行。不过我现在有些疑问: 1. RC4算法对加...
群里的哪位高手对RC4算法了解一些啊?听我的一个同事说RC4算法是一个流加密算法,加密和解密的算法是完全相同的,一般的加密和解密都调用同一个函数就行。不过我现在有些疑问:
1. RC4算法对加密的数据长度没有限制吗?比如明文的长度为1字节加密后的密文也是1字节吗?
2.比如现在有一个600字节的明文,我将这600字节拆分成若干个随机大小的片段,然后分别对这些片段进行加密,加密后拼接起来。当解释时同样将密文拆分成若干个随机大小的片段,然后分别对这些片段进行解密。请问这样可以得到明文吗? 为什么?
1. RC4算法对加密的数据长度没有限制吗?比如明文的长度为1字节加密后的密文也是1字节吗?
2.比如现在有一个600字节的明文,我将这600字节拆分成若干个随机大小的片段,然后分别对这些片段进行加密,加密后拼接起来。当解释时同样将密文拆分成若干个随机大小的片段,然后分别对这些片段进行解密。请问这样可以得到明文吗? 为什么?
|
1、RC4是对称加密算法。。。所谓对称也就是你说的加密和解密的算法是完全相同的,一般的加密和解密都调用同一个函数就行。也就是说只需对密文再加密一次就得到明文。。。这就是对称加密算法的特点。。
2、另外对称加密算法一般明文经过加密以后长度 是不会改变的。。。
3、对于你第2个问题,你的随机大小片段必须是RC4默认最小明文长度的整数倍。。不然加密算法一定是以字节流为明文输入加密 的。。这样你的随机大小片段如果不是最小明文长度的整数倍,那么在加密时就会把随机大小片段以后 内存中的一部分非明文数据也当作明文来凑齐整数倍进行加密。。这样你以后在解密时解出的明文就含有那段内存以后 的数据。。。
2、另外对称加密算法一般明文经过加密以后长度 是不会改变的。。。
3、对于你第2个问题,你的随机大小片段必须是RC4默认最小明文长度的整数倍。。不然加密算法一定是以字节流为明文输入加密 的。。这样你的随机大小片段如果不是最小明文长度的整数倍,那么在加密时就会把随机大小片段以后 内存中的一部分非明文数据也当作明文来凑齐整数倍进行加密。。这样你以后在解密时解出的明文就含有那段内存以后 的数据。。。