java中的key接口解析
发布时间:2023-09-22 14:44:00
该接口实现了序列化,声明为 public interface Key extends Serializable
Key 是所有密钥的顶层接口。它定义了供所有密钥对象共享的功能。所有的密钥都具有三个特征:
①、算法
这是该密钥的密钥算法。密钥算法通常是加密或不对称操作算法(如 DSA 或 RSA),它们将和那些算法及相关的算法(例如 MD5 和 RSA,SHA-1 和 RSA、Raw DSA 等等)一起使用。用 getAlgorithm 方法获取密钥算法的名称。
②、编码形式
这是密钥的外部编码形式,在 Java 虚拟机之外需要密钥的标准表示形式时以及将密钥传输到其他某些部分时使用。密钥根据标准格式(如 X.509 SubjectPublicKeyInfo 或 PKCS#8)编码,使用 getEncoded 方法返回。注:ASN.1 类型 SubjectPublicKeyInfo 的语法定义如下:
SubjectPublicKeyInfo ::= SEQUENCE { algorithm AlgorithmIdentifier, subjectPublicKey BIT STRING }
AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL }
③、格式
这是已编码密钥的格式的名称。它由 getFormat 方法返回。
密钥通常通过密钥生成器、证书或用来管理密钥的各种 Identity 类来获取。密钥也可以通过使用密钥工厂(请参见 KeyFactory)从密钥规范(基础密钥材料的透明表示形式)获取。
密钥应该使用 KeyRep 作为其序列化的表示形式。注意,序列化的 Key 可能包含不应该在不可信任的环境中显示的敏感信息。有关更多信息,请参见序列化规范的安全附录。
1、字段:
static final long serialVersionUID 设置为指示与以前的类版本序列化兼容的类指纹。 2、方法详细:
①String getAlgorithm() 返回此密钥的标准算法名称。例如,"DSA" 指示此密钥是一个 DSA 密钥。
②String getFormat() 返回此密钥的基本编码格式,如果此密钥不支持编码,则返回 null。如果存在此密钥的 ASN.1 规范,则根据合适的 ASN.1 数据格式命名基本编码格式。例如,公钥的 ASN.1 数据格式名称是 SubjectPublicKeyInfo(由 X.509 标准定义);在这种情况下,返回的格式为 "X.509"。类似地,私钥的 ASN.1 数据格式名称是 PrivateKeyInfo(由 PKCS #8 标准定义);在这种情况下,返回的格式为 "PKCS#8"。
③byte[] getEncoded() 返回基本编码格式的密钥,如果此密钥不支持编码,则返回 null。
猜你喜欢
- 1)打开idea,开始创建SpringBoot项目2)选择 Spring Initializr ,选择合适的jdk版本,点击Next在操作到
- 对于 * ,学过AOP的应该都不会陌生,因为代理是实现AOP功能的核心和关键技术。那么今天我们将开始 * 的学习:一、引出 * 生活中
- 知识准备Timer和ScheduledExecutorService是JDK内置的定时任务方案,而业内还有一个经典的定时任务的设计叫时间轮(
- 前言博主上个礼拜,已经实现了quarkus的native image应用的上线,经过两天的监控下来,一切运行指标良好,就是内存升到了100M
- 在gitee上创建springcloud仓库 application.yaml(https方式)server: por
- 如下所示:public static String reThreeStr(String ss){boolean result= ss.mat
- 目录1.项目gitthub地址链接: https://github.com/baisul/generateCode.git切换到master
- 1、Java版package com.lyz.utils.common; import java.io.UnsupportedEncodin
- Java环境配置原理详解1.Jdk安装目录文件说明:一般jdk安装目录及路径 \Java\jdk1.7.0_79\lib,里面主要包含以下文
- 先说一下对异步和同步的理解:同步调用:调用方在调用过程中,持续等待返回结果。异步调用:调用方在调用过程中,不直接等待返回结果,而是执行其他任
- 一、前言canal:阿里巴巴 MySQL binlog 增量订阅&消费组件https://github.com/alibaba/ca
- 一、前期准备提示:如果友友你没有看过系列一的文章点击这个链接:王者荣耀中一个英雄是怎么被产生的?(一)我们现在功能比较多,所有为了让程序运行
- 一、正则表达式去除代码行号作为开发人员,我们经常从网上复制一些代码,有些时候复制的代码前面是带有行号,如:MyEclipse本身自带有查找替
- 前言:mongodb是一个基于分布式文件存储的开源数据库系统。mongodb与我们平常使用的mysql的区别: 1.
- java 读取本地文件实例详解用javax.xml、w3c解析实例代码:package cn.com.xinli.monitor.utils
- 在阅读这篇文章之前,大家可以先看下《Java多线程atomic包介绍及使用方法》,了解atomic包的相关内容。一、何谓Atomic?Ato
- 你是否受够了每次修改静态文件都要重启服务器?有时候在一些公司前后端的职责没有那么的明确,往往后台人员也要去写一些页面,像jsp页面,或者其他
- 本文实例讲述了Java实现多个wav文件合成一个的方法。分享给大家供大家参考,具体如下:前面一篇介绍了java切割wav音频文件的方法,这里
- 一个是新浪微博,腾讯微博的分享按钮,一个是他们的绑定情况(其实就是是否授权)。点击微博分享中新浪或腾讯按钮,就进行相应的授权(若没授权),显
- 首先写一个测试文件然后点击IDEA右侧的maven,然后选择package,之后点击上面运行或者直接双击即可,等下方控制台构建成功即可:然后