导航
发布时间:2021-03-12
与对称加密算法DES,AES一样,RSA算法也是一个块加密算法( block cipher algorithm),其算法原理特点是总保持在一个固定长度的块上进行操作。但跟DES,AES等算法不同的是,RSA算法的block length与key length相关,每次加密的块长度就是key length。RSA加密算法目前有多种填充模式。当明文长度大于key length时,要进行切割分组,然后填充。处理后的每组数据长度也是固定不变的(与RSA密钥模长相等)。
图-1
RSA加密常用的填充模式有三种:RSA_NO_PADDING、RSA_PKCS1_PADDING、RSA_PKCS1_OAEP_PADDING。假设现有RSA算法密钥长度为1024bit,则三种填充模式的填充效果如下所述。
2.RSA_PKCS1_PADDING填充模式
当你选择RSA_PKCS1_PADDING填充模式时,如果明文不够128字节,加密的时候会在明文中随机填充一些数据,所以会导致对同样的明文每次加密后的结果都不一样。
3.RSA_PKCS1_OAEP_PADDING填充模式
RSA_PKCS1_OAEP_PADDING填充模式是PKCS#1推出的新填充方式,安全性高,和前面RSA_PKCS1_PADDING的区别就是加密前的编码方式不一样。