SHA256StreamRange
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 SHA256StreamRange(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-256 thô 32 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_SHA_256 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í dụ
Digest:= SHA256StreamRange(FS, ByteRange[0], ByteRange[2], ByteRange[3]);Xem thêm
SHA256ByteArray, SHA384ByteArray, SHA512ByteArray, SHA3_256ByteArray, SHA3_384ByteArray, SHA3_512ByteArray, SHA1StreamRange, SHA384StreamRange, SHA512StreamRange, SHA3_256StreamRange, SHA3_384StreamRange, SHA3_512StreamRange, SHAKE256ByteArray, SHAKE256StreamRange