日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[java与https]第一篇、证书杂谈

發布時間:2025/5/22 编程问答 42 如意码农
生活随笔 收集整理的這篇文章主要介紹了 [java与https]第一篇、证书杂谈 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、算法、密鑰(對)、證書、證書庫

令狐沖是個馬場老板,這天,他接到店里伙計電話,說有人已經簽了租馬合同,準備到馬場提馬,,他二話不說,突突突就去了,到了之后,發現不認識租客。

令狐沖說,你把你租馬合同給我看看,這就是證書。

沒成想這租客是個二道販子,他呼啦一下掏出來一個裝滿租馬合同的文件袋,這就是證書庫。

租客拿出來跟店里直簽的合同,有雙方的印章,這就是自簽名證書。

令狐沖瞟了一眼,看到還有一些文件頭寫著什么 “大明戰馬管理公司xxx” 的租馬合同,大家都信任朝廷牽頭做的合同,這就是CA證書。

令狐沖看了租客的租馬合同,發現上面確實是店里的印章,這就是公鑰。

令狐沖掏出來一個鑰匙串,挑選了一把造型奇特的鑰匙,打開了大門,這就是私鑰。

這些鑰匙還有的是十字形的,有的是扁的,有的打凹點,有的劃凹槽,有不同的型號,這就是算法。

鑰匙和印章,這就是密鑰對。

令狐沖提了匹烏騅給租客,這二道販子騎上就走,大喊一句:俺老孫去也。

二、編碼與證書格式

學習Java加解密的同學,常常被各種文件及其格式給弄的暈頭轉向,這里幫同學們做一下劃分,幫助同學們理解

2.1 編碼格式的基石 - ASN.1語法

ASN.1 只是一種語法,它只定義 編碼怎么寫 ,不定義 編碼具體內容

下面是 ASN.1 的語法

類型名 ::= 基礎類型 { 類型具體描述 }

它只有這么個東西,這只是個語法,下面是一個語法示例

Blog ::= SEQUENCE {
address PrintableString,
title UTF8String,
date UTCTime,
content String,
status BlogStatus
}

2.2 編碼格式

編碼格式的制定,遵循上述章節的語法,但是有自己的屬性、屬性占據長度等的定義。

比如,定義的基礎類型有哪些(上章節中示例的基礎類型為 SEQUENCE)。

比如,編碼的前幾個字節,分別代表什么意思。

這里不再展開,有興趣的同學可以參閱各種編碼格式的說明,我們只需要了解編碼格式的概念就好了。

常見有如下編碼格式

  • BER 基本編碼格式
  • CER 規范編碼格式 ber 的變種,變長,在實際應用中比較少
  • DER 卓越編碼格式 ber 的變種,定長,數字簽名的默認編碼
  • PER 壓縮編碼格式
  • XER XML編碼格式

通常的,我們說的證書內容的編碼格式,是指 DER 編碼格式,下文中均指 DER 編碼格式。

2.3 編碼標準

有了格式之后,并不能直接用來定義證書內容,就比如我們有了長城磚,但是并不知道長城該怎么壘

而編碼標準,就是告訴我們,通過已知的編碼格式(長城磚),怎么去壘長城。

2.3.1 x509 編碼標準

x509 是密碼學中,關于 公鑰證書格式 的一個編碼標準,用于證書。

我們說的數字證書,通常意義上是指 x509 公鑰證書,它含有公鑰、身份信息(比如網絡主機名,組織的名稱或個體名稱等)和簽名信息(可以是證書簽發機構 CA 的簽名,也可以是自簽名)

2.3.2 PKCS 編碼標準

嚴格來講,PKCS 是一個公鑰密碼學 標準組,它有一系列的編碼標準,拓展了諸如加解密、簽名、密鑰交換、分發證書等過程中的一些規范。

PKCS已經發布了15個版本的標準,常用的版本對應的用途說明如下:

公鑰加密標準 說明 文件后綴
PKCS1 RSA 加密規范,提供了基于 RSA 算法的公鑰加密實現的建議
PKCS 7 密碼消息語法標準 .p7b .p7c .spc
PKCS 8 存儲私鑰信息的標準語法 .key
PKCS 10 證書請求語法標準 .p10 .csr
PKCS 12 個人信息交換語法標準 .p12 .pfx

其中,.p12 / .pfx 常用來做證書庫文件

2.4 證書文件格式

DER 編碼格式的證書是二進制文件,它不能在文本環境下交換信息,為了解決這個問題,出現了用 PEM 格式編碼的證書

2.4.1 PEM 文本編碼格式

簡單來說,PEM 實際上就是把 DER 二進制內容用 Base64 編碼一下,然后加上-----BEGIN label----- 形式的頭部和 -----END label----- 形式的尾部

下面是一個 PEM 編碼格式的公鑰

-----BEGIN PUBLIC KEY-----
BASE64 ENCODER STRING ...
-----END PUBLIC KEY-----

密鑰、證書都可以轉為 PEM 格式,以方便在文本環境中傳輸

2.4.2 常見證書文件

通常的,有如下常見證書文件

擴展名 說明
.der 二進制證書文件,不常用
.pem 證書或密鑰的文本存儲格式文件
.csr 證書簽名請求文件
.key 單獨存放的 PEM 編碼格式私鑰文件
.cer window 環境下常見證書庫文件,可以是二進制,也可以是 PEM 編碼格式
.crt linux 環境下常見證書庫文件,可以是二進制,也可以是 PEM 編碼格式

2.5 常見證書庫的文件編碼格式

常用的證書生成工具有 jdk 自帶的 keytool 、linux 體系的 openssl,對應的,他們生成的證書庫文件編碼格式如下:

  • JKS - keytool 生成的證書庫的文件編碼格式,文件有 *.jks , *.keystore
  • PEM - openssl 生成的證書庫的文件編碼格式,文件有 *.pfx, *.p12

三、算法列舉

在報文傳輸過程中,一定會有使用密鑰對進行加密/解密、簽名/驗簽、報文摘要等操作,這些都需要有針對性的算法

算法 分類 說明
AES 加解密 對稱加密算法
DES 加解密 對稱加密算法
RSA 加解密/簽名 非對稱加密算法
MD 摘要 常見MD5
SHA 摘要 安全散列算法
Mac 摘要 消息認證碼算法
DSA 簽名 數字簽名算法,雖屬于非對稱加密,但不能加解密
MD5withRSA 簽名
SHA1withRSA 簽名
SHA256withRSA 簽名
SHA1withDSA 簽名
SHA256withDSA 簽名
SHA512withDSA 簽名

總結

以上是生活随笔為你收集整理的[java与https]第一篇、证书杂谈的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。