OpenSSL之九 文字資料庫 檔案和口令

2021-10-10 16:35:39 字數 1699 閱讀 7407

文字資料庫:以文字的方式記錄ca已經簽發的證書的狀態和摘要資訊,它是普通的文字檔案,需要時建立並對文字名字和字尾沒有特殊的要求。

建立文字資料庫的方式:

手動建立

執行openssl的pel指令碼ca.pl

管理和讀寫文字資料庫的介面函式目錄:crypto\txt_db目錄下:

文字資料庫的資料結構(每一行代表一條完整記錄):

[

證書狀態] [

證書生效時間] [

證書到期時間] [

證書序列號] [

證書存放路徑] [

特徵名稱(dn)值

]證書狀態可選值:v(vaild),有效

r(rovoked),吊銷

e(expire),過期

證書序列號:十六進製制格式

證書存放路徑:生成證書儲存的具體位置,若標記為unknown(ca指令指定了證書輸出檔案)不影響證書庫的正常使用

特徵名稱(dn

)值:證書主題名,openssl必須保證簽發的證書具有不同的db值

eg:r

031105233205

z9510092233205z01

cets

/000000001

/cn=dragonking

若吊銷證書的時候使用了吊銷原因的選項(ca指令的crl_reason選項),那麼被吊銷的證書記錄中,可能會增加一到兩個字段註明吊銷原因。

對於過期的證書,文字資料庫並不會自動更新,需要使用ca指令的-updatedb選項進行更新,一般來說,在生成crl之前,都應該使用

-updatedb進行更新,

序列號檔案:ca指令簽發證書的時候,需要從序列號檔案簽發讀取當前簽發的證書的序列號並且將序列號檔案中的序列號加1,確保證書序列號的遞增,不重複。序列號檔案是文字檔案,裡面只包含16進製表示的數字,若序列號從零開始,那麼就填「00」。

序列號檔案路口需要在openssl.cnf的serial欄位配置。

隨機大數檔案:為了生成不同的隨機數,增強隨機數的隨機性,需要採用不同的隨機數種子。隨機數檔案就是openssl提供隨機數種子的檔案。無論什麼檔案,都可以作為openssl指令要求的隨機數檔案,因為openssl是將之當成二進位制檔案處理的(什麼內容並不重要)。

即使執行指令引數中沒有輸入隨機數檔案且在openssl.cnf中沒有查詢到預設隨機數檔案,openssl指令也會從螢幕狀態取得隨機數種子。

openssl的指令中,通常採用"-pass"的引數來輸入口令,這些引數的形式有5種,分別對應5種不同的口令獲取途徑:

提示輸入:從指令解密提示輸入口令。

直接輸入:直接在指令引數種輸入口令。

-pass pass:12345678
環境變數輸入:將口令放在環境變數種,使用的時候只要記住環境變數名就可以了。

# passedvar是環境變數名

-pass env:passwdvar

檔案輸入:指定獲取口令的檔名,然後將檔名的第一行作為口令。

# filename是檔名

-pass file:filename

# number是檔案描述控制代碼的編號

-pass fd:number

1 3 文字資料建模流程範例

文字資料預處理較為繁瑣,包括中文切詞 本示例不涉及 構建詞典,編碼轉換,序列填充,構建資料管道等等。在tensorflow中完成文字資料預處理的常用方案有兩種,第一種是利用tf.keras.preprocessing中的tokenizer詞典構建工具和tf.keras.utils.sequence構...

文字資料庫操作

1。資料庫檔案 test.txt 內容如下 1,1,2,3,4 111 2,4,3,5 111111 3,1,2 22222222 4,1 2 30,f rom admin 31,f rom admin 32,f rom admin 33,f rom admin 34,fr om admin 37,...

WebSocket草案10文字資料解析和傳送

握手協議實現了,接下來就是解析資料了,這個相對來說要麻煩很多,相比草案7.6變得更複雜了。下圖是資料傳輸的格式 各個值的具體含義可以參考這個中文翻譯 英文原文在這裡 簡單概括一下就是 fin一直為1,rsv1 rsv2 rsv3一直為0,當傳送內容為文字時,opcode為1,mask如果為1就使用掩...