Atitit.rsa密钥生成器的attilax总结

1.1. 密钥生成器 1

1.2. 生成固定的密钥 2

1.2.1. 设置或重置 SecureRandom 对象的随机数种子 2

1.3. 密钥结构 2

1.1. 密钥生成器

public static Map<String, Object>  initKey2(String md5_deta) throws Exception{

/** RSA算法要求有一个可信任的随机数源 */

SecureRandom secureRandom=  SecureRandom.getInstance("12345678");

//实例化密钥对生成器

KeyPairGenerator keyPairGen=KeyPairGenerator.getInstance(KEY_ALGORITHM);

// 初始化密钥对生成器

//keyPairGen.initialize(KEY_SIZE);

// 初始化的时候固定随机源的值

keyPairGen.initialize(KEY_SIZE, secureRandom);

// 生成密钥对

KeyPair keyPair=keyPairGen.generateKeyPair();

//公钥

RSAPublicKey publicKey=(RSAPublicKey)keyPair.getPublic();

//私钥

RSAPrivateKey privateKey=(RSAPrivateKey) keyPair.getPrivate();

// 得到公钥字符串

//   String publicKeyString = Base64.encode(publicKey.getEncoded());

// 得到私钥字符串

//   String privateKeyString = Base64.encode(privateKey.getEncoded());

// 封装密钥

Map<String, Object> keyMap=new HashMap<String,Object>(2);

keyMap.put(PUBLIC_KEY, publicKey);

keyMap.put(PRIVATE_KEY, privateKey);

return keyMap;

}

1.2. 生成固定的密钥

1.2.1. 设置或重置 SecureRandom 对象的随机数种子

除非调用程序在调用 getInstance 方法后接着调用 setSeed 方法,否则 SecureRandom 实现方法将会完全使发生器的内部状态随机化:

SecureRandom secureRandom=  new SecureRandom("fixx".getBytes("gbk"));

// 初始化的时候固定随机源的值

keyPairGen.initialize(KEY_SIZE, secureRandom);

方法

SecureRandom secureRandom=new SecureRandom();

secureRandom.setSeed(1235);

1.3. 密钥结构

pubkey_md5:A603B693B6BB434FA3004B7618F3B9BB

{

"RSAPublicKey":{

"algorithm":"RSA",

"algorithmId":{

"name":"RSA",

"oID":{}

},

"encoded":"MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIQqS1ReGEE/ySM+PyZxS41HzDBul0xIkscNkqd+qZejQ3r2LmUw4BYoTC7CHsFjwk6V/a0Imwz3KsvtsOffii8CAwEAAQ==",

"encodedInternal":"MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIQqS1ReGEE/ySM+PyZxS41HzDBul0xIkscNkqd+qZejQ3r2LmUw4BYoTC7CHsFjwk6V/a0Imwz3KsvtsOffii8CAwEAAQ==",

"format":"X.509",

"modulus":6922053815168845700711519855384250277549407002769104068590208637227720690525493166882866757882836951436668086793282219943697989363887338835452201051064879,

"publicExponent":65537

},

"RSAPrivateKey":{

"algorithm":"RSA",

"algorithmId":{"$ref":"$.RSAPublicKey.algorithmId"},

"crtCoefficient":12637801240537467651180025414810617094531052210139246616910795005297730540027,

"destroyed":false,

"encoded":"MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAhCpLVF4YQT/JIz4/JnFLjUfMMG6XTEiSxw2Sp36pl6NDevYuZTDgFihMLsIewWPCTpX9rQibDPcqy+2w59+KLwIDAQABAkBNu1Zcw46+aZaR/N1FbeMCsBSe85xWyGRTYF891dhHD21HERkZyfm4BooN0VjKohPbatUmRazWfuGKc9hap7Y5AiEAwfjL1el1zq+YOlTqKsJ5oF8/b+55SLD4dasZpAvC+S0CIQCubcsND+yJrFMFDNyQoY+w2GZuEegDQ3gs37R6N4TySwIgSJZfSTylbmQ9tk6Clt/R/hbGuY9nabF4OSh/Xulb3D0CIB2VO2nUuI5E7rOdkc7px7/7g6vJV6suBzS9IBPWVLLvAiAb8L307PiDD9i/IvEbM8uz7RC+YRUr4DNRx66jEkBR+w==",

"format":"PKCS#8",

"modulus":6922053815168845700711519855384250277549407002769104068590208637227720690525493166882866757882836951436668086793282219943697989363887338835452201051064879,

"primeExponentP":32832209798077781373384495608799993732908171300012237207496150976697489677373,

"primeExponentQ":13380742877797692883283997671823302246667615946650995680559515864045072986863,

"primeP":87735964670198717955861353260506633609525089601993964928345575802643155188013,

"primeQ":78896423390213891002409658607133041775965411272664534765346737848126131204683,

"privateExponent":4071143999659477204234638949384102521448065869993059131846279077802500786064340926073856151160133264216762031129885857399234406337799168487767767633081913,

"publicExponent":65537

}

}

取模运算符“%”的作  modulus

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )

汉字名:艾提拉(艾龙),   EMAIL:[email protected]

转载请注明来源: http://blog.cnb.net/attilax

Atiend

时间: 2024-10-12 19:10:24

Atitit.rsa密钥生成器的attilax总结的相关文章

atitit.词法分析的实现token attilax总结

atitit.词法分析的实现token attilax总结 1. 词法分析(英语:lexical analysis)跟token 1 1.1. 扫描器 2 2. 单词流必须识别为保留字,标识符(变量),常量,操作符(运算符 )和界符五大类 2 2.1. 操作符(运算符 )::: 3 2.2. 4.界符:":"分号,"{}"大括号,单引号,双引号 3 3.  如何进行词法分析? 3 3.1. 使用Fsm状态机(自动机) 3 4. 词法分析器框架选型 4 4.1. 语法

Atitit 图像处理之理解卷积attilax总结

Atitit 图像处理之理解卷积attilax总结 卷积的运算可以分为反转.平移,相乘,求和. 在图像处理中,图像是一个大矩阵,卷积模板是一个小矩阵.按照上述过程,就是先把小矩阵反转,然后平移到某一位置,小矩阵的每一个小格对应大矩阵里面的一个小格,然后把对应小格里面的数相乘,把所有对应小格相乘的结果相加求和,得出的最后结果赋值给小矩阵中央小格对应的图像中小格的值,替换原来的值.就是上述说到的,反转.平移.相乘.求和.        一般图像卷积就是从第一个像素(小格)开始遍历到最后一个像素(小格

Atitit.数据库分区的设计&#160;attilax&#160;&#160;总结

Atitit.数据库分区的设计 attilax  总结 1. 分区就是分门别类的文件夹 (what)1 2. 分区的好处(y)1 3. 分区原则(要不要分区,何时分区)how2 4. 主要的分表类型有range,list,hash,key等2 5. 水平分区(Horizontal Partitioning) 垂直分区(Vertical Partitioning)3 6. 分区的操作4 7. 分区理论  并行数据库的体系结构4 8. 参考7 1. 分区就是分门别类的文件夹 (what) 分区的原理

Atitit.jquery 版本新特性attilax总结

Atitit.jquery 版本新特性attilax总结 1. Jq1.4 1 2. 1.5 1 3. 1.6 3 4. Jq1.7 3 ⒉提升了事件委派时的性能有了大幅度的提升,尤其是在ie7下: 4 ⒊更好的在 ie 6/7/8 上支持 html5: 4 ⒋切换动画更加直观: 4 ⒌匿名模块定义 awd 4 ⒍jQuery.Deferred 4 ⒎jQuery.isNumeric() 4 5. Jq1.8 5 5.1. jQuery 1.8 5 5.1.1. 可定制 5 5.1.2. 自动生

Windows下RSA密钥生成工具openssl

点击下载 1. 生成原始 RSA私钥文件 private_key.pem openssl genrsa -out private_key.pem 1024 2. 将原始 RSA私钥转换为 pkcs8格式 openssl pkcs8 -topk8 -inform PEM -in private_key.pem -outform PEM -nocrypt -out rsa_private_key.pem 3. 生成 RSA公钥 rsa_public_key.pem openssl rsa -in p

.NET与JAVA RSA密钥格式转换

一.该篇内容用于记录.net和Java之间,RSA公密钥的转换 using Org.BouncyCastle.Asn1.Pkcs; using Org.BouncyCastle.Asn1.X509; using Org.BouncyCastle.Crypto.Parameters; using Org.BouncyCastle.Math; using Org.BouncyCastle.Pkcs; using Org.BouncyCastle.Security; using Org.BouncyC

Atitit.常用分区api的attilax总结

1. Api 来源与oracle与mysql1 1.1. 分区定义partition by range (uid)  使用VALUES LESS THAN操作符来进行定1 1.1.1. mysql1 1.1.2. Oracle分区定义partition by range (uid)  使用VALUES LESS THAN操作符来进行定2 1.2. 分区按照hash2 1.2.1. Oracle语法2 1.3.  列表分区: partition by list().3 1.4. 分区的修改和合并3

RSA密钥之C#格式与Java格式转换

前言 最近由于项目需求,服务端由c#编写,客户端由java编写.通信数据使用RSA非对称加密.但是java和c#生成的密钥格式是不一样的,所以需要转换格式才可以正常使用.网上搜到使用java进行格式转换的代码(如:http://blog.csdn.net/road2010/article/details/40071881 ),本文将给出一种c#的实现方法. 密钥格式 java密钥格式如下: 私钥: MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBA

Atitit.注解解析(1)---------词法分析 attilax总结 java .net

Atitit.注解解析(1)---------词法分析 attilax总结  java .net 1. 应用场景:::因为要使用ui化的注解 1 2. 流程如下::: 词法分析(生成token流) >>>>语法分析(生成ast) >>解释执行... 2 3. 词法分析的框架,antlr 2 4. Fsm 状态机/// switch 2 5. 单词流必须识别为保留字,标识符(变量),常量,操作符(运算符 )和界符五大类 2 5.1. 操作符(运算符 )::: 2 5.2.