RSA PKCS1padding 填充模式

在BouncyCastle实现RSA的PKCS1V1.5模式中,如果是公钥加密信息(forEncryption=true),密钥长度为1024位,那么输出的密文块长度为128个字节,输入的明文块长度为127-10,即输入的明文块最大是117位,如果输入的明文块小于117位,比如输入的明文块长度为64位,那么会对这个明文块进行补位,在明文块前添加一位的0x02字节(代表公钥加密)然后后面的52位为随机的字节,在补位的最后一位,{即52(117-64-1),从零开始的},添加一位的字节0x00,在补位的后面添加实际的明文块。

这样做的目的就是使得明文块转化成与module差不多的大整数。

如果是私钥加密(forPrivateKey=true),密钥长度为1024位,那么输出 的密文块长度也是128字节,输入的明文块的长度为127-10,即输入的明文块最大是117位,如果输入的明文块小于117位,比如输入的明文块长度为64位,那么对这个明文块进行补位,在明文块千添加一位的0x01字节(代表私钥加密),然后在后面的52位为字节0xff,在最后一位{即52(117-64-1),从零开始),添加一位的字节0x00,在补位的后面添加时间的明文块。

时间: 2024-10-01 09:14:46

RSA PKCS1padding 填充模式的相关文章

RSA PKCS1 填充方式

1)RSA_PKCS1_PADDING 填充模式,最常用的模式 要求:输入 必须 比 RSA 钥模长(modulus) 短至少11个字节, 也就是 RSA_size(rsa) – 11    如果输入的明文过长,必须切割, 然后填充          输出 和modulus一样长 根据这个要求,对于512bit的密钥, block length = 512/8 – 11 = 53 字节 2) RSA_PKCS1_OAEP_PADDING RSA_size(rsa) – 41 3)for RSA_

IOS开发之-控件ContentMode代码改变填充模式小结

在UIImageView的使用中,有时需要用代码设置其内图片内容的填充模式,  为方便以后工作方便查找使用,现把各种模式测试如下 // 测试图片内容填充模式 static int a; -(void)test1{ self.imageV.image = [UIImage imageNamed:@"aa.jpg"]; // 改变内部内容的填充方式 self.imageV.contentMode = a; // 显示模式文字 UILabel *lab = [[UILabel alloc]i

猫猫学iOS 之微博项目实战(10)微博cell中图片的显示以及各种填充模式简介

猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 :一效果 如果直接设置会有拉伸等等的状况,这里主要介绍图片显示的一些细节 二:代码 代码实现其实很简单,微博当中用了一个photos来存放九宫格这些图片,然后用了一个photo类来做每个photo,并且在上面显示gif等的样式,很多很多小技巧,直接上代码 九宫格根据行列设置等算法,不难 #import "HWStatusPhotosView.h" #i

UIImageView填充模式(contentMode)

UIViewContentModeScaleToFill :拉伸填充UIImageView满屏 UIViewContentModeScaleAspectFit :拉伸到合适UIImageView大小后(全部内容都还显示),自适应UIImageView大小. UIViewContentModeScaleAspectFill :当宽高其中一个值达到UIImageView大小后,将图片放入UIImageView居中显示(可能会有部分内容超越UIImageView边框,需要结合clipsToBounds

AES 加密位: 128位,加密模式:CBC, 填充模式:Zeros

// AES 加密 public byte[] AESEncrypt(string text) { byte[] data = Encoding.Unicode.GetBytes(text); SymmetricAlgorithm aes = Rijndael.Create(); aes.Key = keyArray; aes.IV = keyArray; aes.Mode = CipherMode.CBC; aes.Padding = PaddingMode.Zeros; using (Mem

canvas入门-1三种填充方式、渐变、模式

1.定义canvas的尺寸的时候最好用html的方式定义,用width和height的方式,用css会导致画布按照css设定的方式进行缩放,cavas内部是一个2d的渲染环境 2.一个canvas对应一个2d的渲染环境,绘制图形的操作都是在2d渲染环境中进行的 <canvas id="canvas-1" style="border:solid 1px gray;" width = "400" height="400"&g

RSA,JAVA私钥加密,C#公钥解密

做这个东西在坑里爬了3天才爬出来,记录下供园友参考.C#程序员一枚,项目需要和Java做数据交互,对方甩了段密文和一个CER证书给我,然后我要对其密文进行解密. RSA 非对称加密,对方用私钥加密,我用公钥解密.关于证书的一点说明:证书类型有两种 .pfx 和 .cer ,其中 .pfx 证书既包含公钥也包含私钥, 而 .cer 证书只包含公钥. C#默认RSA只支持公钥加密,私钥解密.而现在的需求正好相反,因此想要直接用C#内置加密类肯定是行不通的.而且C#和Java的RSA加密并不互通.经过

第十二章 非对称加密算法-RSA

注意:本节内容主要参考自<Java加密与解密的艺术(第2版)>第8章“高等加密算法--非对称加密算法” 12.1.RSA(最经典的非对称加密算法) 特点: 使用一套密钥即可完成加解密(与DH不同) 与DH不同的第二点是,RSA自己可以完成加解密,而DH需要依赖于对称加密算法 “私钥加密,公钥解密”或“公钥加密,私钥解密” 公钥长度远小于私钥长度(对下边的代码进行测试,自己比较结果) 加解密流程: 1)发送方(假设为甲方)构建密钥对,自己保留私钥,将公钥发送给接收方(假设为乙方) 2)甲方使用密

PHP开发接口使用RSA进行加密解密方法

网络安全问题很重要,尤其是保证数据安全,遇到很多在写接口的程序员直接都是明文数据传输,在我看来这是很不专业的.本人提倡经过接口的数据都要进行加密解密之后进行使用. 这篇文章主要介绍使用PHP开发接口,数据实现RSA加密解密后使用,实例分析了PHP自定义RSA类实现加密与解密的技巧,非常具有实用价值,需要的朋友可以参考下. 简单介绍RSA: RSA加密算法是最常用的非对称加密算法,CFCA在证书服务中离不了它.但是有不少新手对它不太了解.下面仅作简要介绍.RSA是第一个比较完善的公开密钥算法,它既