Java密码学
来源:互联网 发布:电脑运行网络命令大全 编辑:程序博客网 时间:2024/06/05 08:50
我们是通过ASN.1结构, 来构造信息和接收信息并提取所需要的信息
如何自定义ASN.1结构
我们查看PKCS10CertificationRequest的源码, 会发现CertificationRequest是继承ASN1Object
public class PKCS10CertificationRequest{...private CertificationRequest certificationRequest;...}public class CertificationRequest extends ASN1Object{ }
于是我们跟着构造即可 , 这里值得注意的是
CertificationRequest 源码
public ASN1Primitive toASN1Primitive(){ // Construct the CertificateRequest ASN1EncodableVector v = new ASN1EncodableVector(); v.add(reqInfo); v.add(sigAlgId); v.add(sigBits); return new DERSequence(v);}
这段代码 , 我们看这里所添加进去的所有对象, 他们的类也都是继承ASN1Object结构, 也就明白, 它们是层次结构. 而层次结构之间 是通过ASN1EncodableVector这个类进行链接
//最后储存的时候PKCS10CertificationRequest csr=...;csr.toASN1Structure().getEncoded(); //然后再储存
或者你也可以override getEncoded()
你理解成原来的数据「123」变成
<data>123</data>
获取对象 ,我们也可以通过查看request的源码了解到
byte[] bytes = FileUtils.readFileToByteArray(new File(自定义数据包));ASN1Sequence seq = ASN1Sequence.getInstance(bytes);
这里之后, 我们就需要将
<data>123</data>
变回123
DEROctetString类型的具体操作是
byte[] byte = new DEROctetString(seq).getOctets()
其他类型原理其实也就这样.
阅读全文
1 0
- Java密码学
- Java密码学
- Java密码学
- Java密码学
- Java密码学
- Java密码学
- Java密码学
- Java密码学
- Java密码学
- Java密码学
- Java密码学
- Java密码学
- Java密码学
- Java密码学
- Java密码学
- Java密码学
- Java密码学
- 收藏.Java.密码学
- MyBatis数据缓存
- 【C语言】【unix c】数据类型
- Maven仓库
- 常用目录地址
- (转)常见的用户密码加密方式以及破解方法
- Java密码学
- 数据结构-AVL树和红黑树的对比
- 拥抱.NET Core系列:Logging (1)
- 设计模式_简单工厂模式(2)
- 树莓派3-搭建SAMBA服务器
- 析构函数(destructor)
- 数据对象
- python 获取指定文件夹下所有文件名称并写入列表
- 二、hibernate一对多关联