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ố

InputLuồ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
FirstLengthSố 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
SecondStartKhoả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ý
SecondLengthSố 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