SHA1StreamRange

การเข้ารหัสลับ

คำอธิบาย

AnsiString

/ByteRangeอินพุตที่ถูกแฮชคือช่วงไบต์ [0, FirstLength) ตามด้วยช่วงไบต์ [SecondStart, SecondStart + SecondLength) ซึ่งสอดคล้องกับโครงสร้าง /Contents ของลายเซ็น PDF ที่ต้องข้ามช่องว่างของ

ไวยากรณ์

Delphi

Function SHA1StreamRange(Input: TStream; FirstLength, SecondStart, SecondLength: Int64): AnsiString;

พารามิเตอร์

Inputสตรีมที่จะแฮช ฟังก์ชันจะ seek ก่อนแต่ละส่วน ตำแหน่งของสตรีมตอนเรียกจึงไม่มีผล
FirstLengthจำนวนไบต์ที่แฮชจากตำแหน่ง 0 ของสตรีม คือช่วงครึ่งเปิด [0, FirstLength), ค่า 0 จะข้ามส่วนแรก
SecondStartออฟเซ็ตในสตรีมที่ส่วนที่สองที่ถูกแฮชเริ่มต้น ปกติคือไบต์แรกหลังช่องว่าง /Contents ของลายเซ็น
SecondLengthจำนวนไบต์ที่แฮชจาก SecondStart คือช่วงครึ่งเปิด [SecondStart, SecondStart + SecondLength), ค่า 0 จะข้ามส่วนที่สอง

ค่าที่ส่งกลับ

ค่าย่อย SHA-1 ดิบขนาด 20 ไบต์ที่แพ็กอยู่ใน AnsiString หรือสตริงว่างเมื่อสร้าง CryptoAPI provider หรือ hash object ไม่ได้ หรือขั้นตอนแฮชใดล้มเหลว

หมายเหตุ

ส่งงานต่อให้ตัวช่วย SHAStreamRange ที่ใช้ร่วมกัน ซึ่งขอ context แบบ PROV_RSA_AES ของ CryptoAPI, แฮชด้วย CALG_SHA1 เป็นก้อนละไม่เกิน 8000 ไบต์ และละเลยจำนวนที่คืนจากการอ่านสตรีมแต่ละครั้ง ตัวช่วยนี้ไม่ปฏิเสธค่าช่วงที่ติดลบ ต่างจากตัวแปรสตรีมของ 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