SHA1StreamRange
Mật mã học
Mô tả
AnsiString
/ByteRangeĐầu vào được băm là khoảng byte [0, FirstLength) theo sau bởi khoảng byte [SecondStart, SecondStart + SecondLength), khớp bố cục /Contents chữ ký PDF trong đó lỗ
Cú pháp
Delphi
Function SHA1StreamRange(Input: TStream; FirstLength, SecondStart, SecondLength: Int64): AnsiString;Tham số
| Input | Luồng cần băm; hàm seek trước mỗi đoạn, nên vị trí luồng khi vào không quan trọng |
|---|---|
| FirstLength | Số byte được băm từ vị trí luồng 0, khoảng nửa mở [0, FirstLength); 0 bỏ qua đoạn đầu tiên |
| SecondStart | Khoảng lệch luồng nơi đoạn được băm thứ hai bắt đầu, thường là byte đầu tiên sau lỗ /Contents chữ ký |
| SecondLength | Số byte được băm từ SecondStart, khoảng nửa mở [SecondStart, SecondStart + SecondLength); 0 bỏ qua đoạn thứ hai |
Giá trị trả về
Digest SHA-1 thô 20 byte được đóng gói vào một AnsiString, hoặc chuỗi rỗng khi không thể tạo nhà cung cấp CryptoAPI hay đối tượng băm hoặc một bước băm thất bại |
Ghi chú
Ủy quyền cho trình trợ giúp chung SHAStreamRange, hàm này lấy một ngữ cảnh CryptoAPI PROV_RSA_AES, băm CALG_SHA1 theo từng khối tối đa 8000 byte, và bỏ qua số đếm trả về của mỗi lần đọc luồng; các giá trị khoảng âm không bị trình trợ giúp này từ chối, khác với các biến thể luồng SHA-3, và SHA-1 được giữ lại cho khả năng tương thích chữ ký kiểu cũ
Ví dụ
Digest:= SHA1StreamRange(FS, ByteRange[0], ByteRange[2], ByteRange[3]);Xem thêm
SHA256ByteArray, SHA384ByteArray, SHA512ByteArray, SHA3_256ByteArray, SHA3_384ByteArray, SHA3_512ByteArray, SHA256StreamRange, SHA384StreamRange, SHA512StreamRange, SHA3_256StreamRange, SHA3_384StreamRange, SHA3_512StreamRange, SHAKE256ByteArray, SHAKE256StreamRange