SHA1StreamRange
密碼編譯
描述
AnsiString
/ByteRange雜湊輸入為位元組範圍 [0, FirstLength),其後接著位元組範圍 [SecondStart, SecondStart + SecondLength),對應 PDF 簽章 /Contents 配置中必須跳過
語法
Delphi
Function SHA1StreamRange(Input: TStream; FirstLength, SecondStart, SecondLength: Int64): AnsiString;參數
| Input | 要雜湊的串流;函式會在每個區段前先定位,因此進入時的串流位置不影響結果 |
|---|---|
| FirstLength | 從串流位置 0 起雜湊的位元組數,即半開區間 [0, FirstLength);0 表示跳過第一個區段 |
| SecondStart | 第二個雜湊區段開始的串流位移,通常是簽章 /Contents 空洞後的第一個位元組 |
| SecondLength | 從 SecondStart 起雜湊的位元組數,即半開區間 [SecondStart, SecondStart + SecondLength);0 表示跳過第二個區段 |
傳回值
封裝成 AnsiString 的原始 20 位元組 SHA-1 摘要;當無法建立 CryptoAPI 提供者或雜湊物件,或某個雜湊步驟失敗時,則為空字串 |
備註
此函式委派給共用的 SHAStreamRange 輔助常式,該常式會取得 PROV_RSA_AES CryptoAPI 內容、以最多 8000 位元組的區塊雜湊 CALG_SHA1,並忽略每次串流讀取傳回的數量;與 SHA-3 串流變體不同,此輔助常式不會拒絕負數範圍值,且 SHA-1 保留用於舊版簽章互通
範例
Digest:= SHA1StreamRange(FS, ByteRange[0], ByteRange[2], ByteRange[3]);另請參閱
SHA256ByteArray, SHA384ByteArray, SHA512ByteArray, SHA3_256ByteArray, SHA3_384ByteArray, SHA3_512ByteArray, SHA256StreamRange, SHA384StreamRange, SHA512StreamRange, SHA3_256StreamRange, SHA3_384StreamRange, SHA3_512StreamRange, SHAKE256ByteArray, SHAKE256StreamRange