EnglishFrenchSpanish

เรียกใช้เซิร์ฟเวอร์ | Ubuntu > | Fedora > |


ไอคอน Fav ของ OnWorks

hashcash - ออนไลน์ในคลาวด์

เรียกใช้ hashcash ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง hashcash ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


hashcash - hashcash ต่อต้านสแปม / ปฏิเสธเครื่องมือตอบโต้บริการ

เรื่องย่อ


ทำเหรียญ (สร้าง) แสตมป์:

แฮชcash -m [[ ตัวเลือก ] [ ทรัพยากร ... ] ... ]

ตรวจสอบ แสตมป์:

แฮชcash -c [[ ตัวเลือก ] -r ทรัพยากร ... ] [ ประทับ ... ]

ความเร็ว ประมาณการ:

แฮชcash -s [ ตัวเลือก ] [ -b บิต ]

ล้าง ฐานข้อมูล:

แฮชcash -p ตอนนี้ [ -j ทรัพยากร ] [ -k ] [ -t เวลา ] [ -u ]

นับ การปะทะกัน บิต:

แฮชcash -w [ ตัวเลือก ] [ ประทับ ... ]

ได้รับ ทรัพยากร ชื่อ:

แฮชcash -n [ ตัวเลือก ] [ ประทับ ... ]

ได้รับ เวลา ที่เหลืออยู่ จนกระทั่ง หมดอายุ

แฮชcash -l [ ตัวเลือก ] -e ระยะเวลา [ ประทับ ... ]

DESCRIPTION


Hashcash เป็นเครื่องมือวัดเคาน์เตอร์ปฏิเสธการให้บริการ การใช้งานหลักในปัจจุบันคือการช่วย
ผู้ใช้ hashcash หลีกเลี่ยงการสูญเสียอีเมลเนื่องจากการต่อต้านสแปมตามเนื้อหาและบัญชีดำ
ระบบ

เครื่องมือแฮชแคชช่วยให้คุณสร้างแสตมป์แฮชแคชเพื่อแนบไปกับอีเมลที่คุณส่งและ
เพื่อตรวจสอบประทับตรา hashcash ที่แนบมากับอีเมลที่คุณได้รับ ผู้ส่งอีเมลแนบ hashcash
ประทับตราด้วย X-Hashcash: ส่วนหัว ขอแนะนำให้ผู้ขายและผู้เขียนเครื่องมือป้องกันสแปม
เพื่อยกเว้นเมลที่ส่งด้วย hashcash จากบัญชีดำและกฎการกรองตามเนื้อหา

การประทับตรา hashcash ถือเป็นการพิสูจน์การทำงานซึ่งใช้ปริมาณงานที่สามารถกำหนดพารามิเตอร์ได้
เพื่อคำนวณสำหรับผู้ส่ง ผู้รับสามารถตรวจสอบตราประทับที่ได้รับได้อย่างมีประสิทธิภาพ

ฟังก์ชันพิสูจน์การทำงานของแฮชแคชคือการคำนวณการชนกันของแฮชบางส่วน (แฮช SHA1
ใช้ฟังก์ชัน) โดยเลือกจำนวนบิตของการชนกัน งานที่ต้องทำ
การคำนวณการชนกันสามารถทำได้โดยพลการแพง -- จากเศษส่วนของวินาทีถึง
นาทีหรือชั่วโมง การตรวจสอบมีประสิทธิภาพซึ่งต้องใช้ต้นทุนเพียงเล็กน้อยเท่ากันทุกประการ
ขนาดการชนกัน

สำหรับการอภิปรายโดยละเอียดเพิ่มเติมเกี่ยวกับการใช้แฮชแคชของแอปพลิเคชันอื่นสำหรับดู
http://www.hashcash.org/

การใช้ หมายเหตุ


ในหน้านี้ชื่อทรัพยากรคือชื่อของบริการหรือที่อยู่ที่ตราประทับคือ
สร้างขึ้นเพื่อ ในกรณีของอีเมล ชื่อทรัพยากรคือที่อยู่อีเมลของผู้รับใน
แบบฟอร์ม user@domain.com.

การทำเหรียญ แสตมป์

พื้นที่ปลูก -m ต้องมอบธงเพื่อทำตราประทับ

ชื่อทรัพยากร (ที่อยู่อีเมลของผู้รับ) ที่จะใช้ประทับตราสามารถส่งเป็น
อาร์กิวเมนต์หรือถ้าละเว้นจะถูกอ่านจาก stdin หาก stdin เป็น tty ผู้ใช้จะได้รับแจ้ง if
stdin เป็นไพพ์ที่ชื่อทรัพยากรถูกอ่านอย่างเงียบ ๆ ขนาดการชนที่ต้องการสามารถ
ระบุด้วยตัวเลือก -b หากไม่มีการระบุขนาดการชน ค่าดีฟอลต์คือ 20
บิต ดูเพิ่มเติมที่ -b ผิดนัด ตัวเลือก

การตรวจสอบ แสตมป์

พื้นที่ปลูก -c ต้องให้ธงเพื่อตรวจสอบการหมดอายุของแสตมป์ ตราประทับที่จะตรวจสอบสามารถกำหนดให้เป็น
อาร์กิวเมนต์ "hashcash" หากไม่ได้รับตราประทับ ตราประทับจะถูกอ่านจาก stdin ถ้า stdin เป็น a
tty ผู้ใช้จะได้รับแจ้ง ถ้า stdin เป็นไพพ์ ตราประทับจะถูกอ่านอย่างเงียบๆ NS
ชื่อทรัพยากร (ที่อยู่อีเมลของผู้รับ) สามารถระบุได้ด้วย -r ตัวเลือก. ถ้า
ชื่อทรัพยากรถูกกำหนดชื่อทรัพยากรจะถูกเปรียบเทียบกับชื่อทรัพยากรในตราประทับ if
ไม่ตรงกัน แสตมป์ถูกปฏิเสธ

หมายเหตุ: หากไม่มีการระบุชื่อทรัพยากร ตราประทับจะถูกตรวจสอบเพื่อดูว่าเป็นอย่างอื่นหรือไม่
ถูกต้อง แต่สามารถสร้างเป็นทรัพยากรอื่นได้ ซึ่งจะทำให้แสตมป์เป็น
ใช้ซ้ำในทรัพยากรต่างๆ ดังนั้น hashcash จะส่งคืนรหัสทางออกที่ไม่ได้ตรวจสอบเมื่อออก

โดยค่าเริ่มต้น แสตมป์จะถือว่ามีอายุ 28 วัน ระยะเวลาที่ใช้ได้สามารถเป็น
เปลี่ยนโดยใช้ -e ธง.

หากตราประทับหมดอายุหรือมีวันที่ในอนาคตแสตมป์จะถูกปฏิเสธและโปรแกรม
ออกไปทันที

หากกำหนดขนาดการชนกันที่กำหนดด้วย -b ธง คำนวณค่าแสตมป์และ
เปรียบเทียบถ้าตราประทับมีค่าไม่เพียงพอจะถูกปฏิเสธและโปรแกรมออก
โดยทันที. ถ้า -b ไม่ได้ให้ธง ให้ประทับตราตรวจสอบเพื่อดูว่าเป็นอย่างอื่นหรือไม่
ถูกต้อง แต่ hashcash จะส่งคืนรหัสทางออกที่ไม่ได้ตรวจสอบเมื่อออก

หากตราประทับเป็นสองเท่า ตราประทับจะถูกปฏิเสธ คุ้มครองการใช้จ่ายสองเท่าคือ
กล่าวถึงรายละเอียดเพิ่มเติมด้านล่างใน "การคุ้มครองการใช้จ่ายซ้ำซ้อน" หากใช้จ่ายซ้ำซ้อน
ไม่ได้เปิดใช้งานการป้องกัน แสตมป์สามารถใช้ซ้ำได้ ดังนั้น hashcash จะกลับมา
รหัสทางออกที่ไม่ได้ตรวจสอบ (รหัสทางออก 2) เมื่อออก

พื้นที่ปลูก -w ธงสามารถใช้เพื่อขอให้นับจำนวนบิตของการชนกัน
และแสดง NS -n ธงสามารถใช้เพื่อขอชื่อทรัพยากรในตราประทับเป็น
แยกวิเคราะห์และแสดง NS -l ธงสามารถใช้ขอจำนวนวินาทีจนถึง
การหมดอายุของตราประทับจะถูกส่งออก

โปรแกรมจะส่งคืนรหัสทางออกที่ถูกต้องหรือไม่ถูกต้องหาก -c ใช้แฟล็ก the -b
ใช้ธง -d, -r ทรัพยากร ถูกนำมาใช้ นี่เป็นชุดตัวเลือกขั้นต่ำที่จำเป็นในการ
ตรวจสอบความถูกต้องของแสตมป์ให้ครบถ้วน หากไม่ตรงตามเกณฑ์เหล่านี้ โปรแกรมจะ
ส่งคืนรหัสทางออกที่ไม่ได้เลือก (รหัสทางออก 2) เมื่อออก (ดูเพิ่มเติมที่ -y ธง.)

สอง การใช้จ่าย การป้องกัน

ถ้า -d แฟล็กถูกใช้ในการตรวจสอบแสตมป์ ฐานข้อมูลของแสตมป์ที่ใช้แล้วจะถูกเก็บไว้

โดยค่าเริ่มต้น ตราประทับจะหมดอายุหลังจาก 28 วัน โดยไม่มีการหมดอายุ ฐานข้อมูลจะเพิ่มขึ้น
อย่างไม่มีกำหนด คุณสามารถระบุช่วงเวลาหมดอายุอื่นด้วยปุ่ม -e ธง. NS
ระยะเวลาหมดอายุที่แนะนำ (และค่าเริ่มต้น) สำหรับอีเมลคือ 28 วัน หลังหมดเวลา
ระยะเวลา ตราประทับใด ๆ ถือว่าหมดอายุและอาจถูกลบออกจากฐานข้อมูล
เพื่อประหยัดพื้นที่ (ดู "การล้างเป็นระยะเทียบกับการเข้าถึงครั้งต่อไป" สำหรับวิธีการล้างแสตมป์)

ด้วยเหตุผลด้านประสิทธิภาพ ตราประทับจะถูกตรวจสอบก่อนที่จะตรวจสอบในฐานข้อมูล ถ้ามันเป็น
มิฉะนั้นจะไม่มีกิจกรรมฐานข้อมูลเกิดขึ้น

หมายเหตุ: การพิจารณาระยะเวลาที่ตราประทับควรจะถือว่าถูกต้องนั้นขึ้นอยู่กับ
ผู้ตรวจสอบ ถ้ามันสั้นเกินไปก็เป็นไปได้สำหรับบางแอพพลิเคชั่นที่ตราประทับจะ
หมดอายุก่อนถึงผู้รับ (เช่น อีเมล) ค่าแนะนำ 28 วัน
ควรจะปลอดภัยสำหรับความล่าช้าในการส่งอีเมลตามปกติ ทางเลือกคือการแลกเปลี่ยนระหว่าง
ขนาดฐานข้อมูลและความเสี่ยงของการหมดอายุก่อนเดินทางมาถึงและขึ้นอยู่กับแอปพลิเคชัน

หมายเหตุ: ตราประทับที่แตกต่างกันในฐานข้อมูลเดียวกันสามารถมีช่วงเวลาที่ใช้ได้ต่างกัน ดังนั้นสำหรับ
ตัวอย่างตราประทับสำหรับทรัพยากรต่าง ๆ ที่มีช่วงเวลาที่มีผลบังคับใช้ต่างกันสามารถเก็บไว้ใน
ฐานข้อมูลเดิมหรือผู้รับอาจเปลี่ยนระยะเวลาการประทับตราในอนาคต
โดยไม่กระทบต่อความถูกต้องของแสตมป์เก่า

การกวาดล้าง เป็นระยะ vs on ต่อไป ทางเข้า

หากต้องการล้างแสตมป์เก่าเป็นระยะขณะตรวจสอบตราประทับ ให้ใช้ -p ระยะเวลา ตัวเลือกในการล้าง
ไม่ช้ากว่าระยะเวลาที่กำหนดตั้งแต่การล้างครั้งสุดท้าย การล้างสามารถใช้กับ
-k ตัวเลือกในการล้างแสตมป์ที่ยังไม่หมดอายุและด้วย -j ทรัพยากร ธงเพื่อล้างเท่านั้น
แสตมป์สำหรับทรัพยากรที่กำหนด

มีสถานการณ์ที่อาจไม่สะดวกที่จะล้างแสตมป์ในการเข้าถึงครั้งต่อไป
เช่น หากมีฐานข้อมูล Double-Expender ขนาดใหญ่ซึ่งใช้เวลาในการล้างข้อมูล และ
เวลาตอบสนองของตัวตรวจสอบแฮชแคชมีความสำคัญ เพื่อหลีกเลี่ยงปัญหานี้ ให้ล้าง
แยกกันได้โดยใช้ปุ่ม -p ตอนนี้ ตัวเลือกเพื่อขอเพียงการดำเนินการล้าง
บนยูนิกซ์คุณสามารถเรียก "hashcash -p ตอนนี้" ในงาน cron วันละครั้งหรือ
ความต้องการเมื่อดิสก์เหลือน้อย

ความเร็ว ประมาณการ

พื้นที่ปลูก -s แฟล็กร้องขอการวัดจำนวนการชนที่สามารถทดสอบได้ต่อวินาที เลขที่
แสตมป์ถูกสร้างขึ้นหรือตรวจสอบแล้ว

ถ้า -b ใช้แฟล็กกับตัวเลือกนี้ แทนที่จะใช้ค่าประมาณว่าจะใช้เวลากี่วินาที
นำไปคำนวณแสตมป์ขนาดที่กำหนดเป็นบิต เพื่อจะได้รู้ว่ามันนานแค่ไหน
จะใช้เวลาในการสร้างตราประทับขนาดเริ่มต้นที่ใช้ -s -b ผิดนัด.

หมายเหตุ

ข้อมูลที่ส่งออกทั้งหมดจะพิมพ์บน stderr แสตมป์มิ้นต์ และผลงานแสตมป์
การตรวจสอบและกำหนดเวลาจะพิมพ์บน stdout ธงที่เงียบสงบ -q ระงับทั้งหมด
เอาท์พุทข้อมูล NS -v แฟล็กขอเอาต์พุตข้อมูลเพิ่มเติม ที่ร้องขอ
output ซึ่งเป็นข้อมูลเดียวที่ส่งออกในโหมดเงียบ (เมื่อ -q ระบุไว้)
ถูกพิมพ์บนเอาต์พุตมาตรฐาน หาก stdout เป็นไพพ์ หรือเมื่อโหมดเงียบมีผล
เอาต์พุตถูกพิมพ์โดยไม่มีคำอธิบาย (เช่น แค่บิต แค่ไม่กี่วินาที แค่ทรัพยากร)

OPTIONS


-c ตรวจสอบข้อมูลการหมดอายุของแสตมป์ที่ให้ไว้เป็นอาร์กิวเมนต์หรือใน stdin (ใช้กับ
-b, -d และ -r ทรัพยากร เพื่อตรวจสอบตราประทับให้ครบถ้วน)

-m แสตมป์มิ้นต์ด้วยทรัพยากรที่กำหนดเป็นอาร์กิวเมนต์หรือบน stdin

-b บิต
เมื่อสร้างตราประทับ ให้สร้างการชนกันอย่างน้อยหลายบิตนี้ เมื่อตรวจสอบ a
แสตมป์ต้องการให้มีการชนกันอย่างน้อยที่สุดหลายบิต มิฉะนั้น ปฏิเสธ
มัน. หากละเว้นจะใช้ค่าเริ่มต้น

เมื่อตรวจสอบตราประทับ กำหนดให้ตราประทับมีหลายบิต

สามารถระบุจำนวนบิตเริ่มต้นได้ด้วย -b ผิดนัด. บิตสัมพันธ์กับ
ค่าเริ่มต้นยังสามารถระบุด้วย -b +n สำหรับ n บิตมากกว่าค่าเริ่มต้นและ -b -n
สำหรับ n บิตที่น้อยกว่าค่าดีฟอลต์

-b ผิดนัด, -b +0 และ -b -0 มีค่าเท่ากันทั้งหมด

เมื่อทำการทดสอบความเร็ว -s, สามารถวัดความเร็วของโทเค็นเริ่มต้นด้วย -s -b
ผิดนัด.

-r ทรัพยากร
เมื่อสร้างตราประทับ ชื่อทรัพยากร (ที่อยู่อีเมลของผู้รับ) เพื่อสร้างตราประทับ
ต่อต้าน สามารถให้ได้ทั้งกับ -r ทรัพยากร หรือเป็นอาร์กิวเมนต์ของ "hashcash"

เมื่อตรวจสอบตราประทับ ชื่อทรัพยากร (ที่อยู่อีเมลของคุณเอง) จะได้รับพร้อมกับ -r
ตัวเลือก. หากระบุชื่อทรัพยากร ระบบจะตรวจสอบกับชื่อทรัพยากรใน
ตราประทับและหากไม่ตรงกับตราประทับจะถูกปฏิเสธ สังเกตว่าชื่อทรัพยากรคือ
ไม่ได้รับแสตมป์สำหรับทรัพยากรอื่น ๆ จะได้รับการยอมรับและดังนั้น hashcash
ส่งคืนรหัสทางออกที่ไม่ได้ตรวจสอบ (รหัสทางออก 2) เมื่อออก

-o เมื่อตรวจสอบแสตมป์สามารถให้ทรัพยากรได้หลายอย่าง โดยค่าเริ่มต้น ทรัพยากรคือ
เพิ่งตรวจสอบทีละรายการจนกว่าจะพบทรัพยากรที่ถูกต้องตรงกัน อย่างไรก็ตาม เมื่อคุณ
ใช้สัญลักษณ์แทนหรือนิพจน์ทั่วไป (ดู -E) เป็นประโยชน์ที่จะระบุได้ว่า
ทรัพยากรหนึ่งแทนที่อีกทรัพยากรหนึ่ง ตัวอย่างเช่น: -b15 -r adam@dev.null -o -b10
*@dev.null ระบุว่าส่งไปยังที่อยู่ adam@dev.null ต้องการ 15 บิต แต่ส่งไปที่
*@dev.null ต้องการเพียง 10 บิต ถ้าเราละเว้น -o แทนที่ความสัมพันธ์ระหว่าง
ทั้งสองทรัพยากร แสตมป์ 10 บิตจะได้รับการยอมรับสำหรับที่อยู่ adam@dev.null
เพราะในขณะที่มันจะถูกปฏิเสธเนื่องจากมีบิตไม่เพียงพอภายใต้กฎข้อแรก
จะได้รับการยอมรับภายใต้กฎข้อที่ 2 NS -o ตัวเลือกช่วยให้คุณหลีกเลี่ยงปัญหานี้ได้

-e เวลา
ระยะเวลาหมดอายุของแสตมป์ที่ใช้แล้ว ขณะตรวจตราประทับ (โดยใช้เครื่องหมาย -c ธง) ถ้า
ตราประทับสร้างเสร็จเกินระยะเวลาที่กำหนด ถือว่าหมดอายุแล้ว
หากไม่ได้ใช้ตัวเลือกนี้ ตราประทับเริ่มต้นจะหมดอายุหลังจาก 28 วัน ระยะเวลาหมดอายุ
กำหนดเป็นวินาทีโดยค่าเริ่มต้น (อาร์กิวเมนต์ 0 หมายถึงตลอดไป) ตัวอักษรตัวเดียว
คำต่อท้ายสามารถใช้เพื่อระบุหน่วยสำรอง (m = นาที, h = ชั่วโมง, d = วัน, M =
เดือน y = Y = ปี และ s = วินาที)

ถ้าใช้กับ -d ตัวเลือก แสตมป์ที่ใช้แล้วและระยะเวลาหมดอายุจะถูกบันทึกไว้ใน
ฐานข้อมูล ดู -p ตัวเลือกสำหรับคำอธิบายวิธีการล้างแสตมป์ออกจากฐานข้อมูล

ในขณะที่ทำแสตมป์ the -e ธงสามารถมีผลต่อความละเอียดของเวลาที่สร้างขึ้น
ในแสตมป์ ปราศจาก -e ตัวเลือก ความละเอียดเริ่มต้นคือวัน (รูปแบบเวลา:
ปปปป) รูปแบบอื่นตามช่วงระยะเวลาหมดอายุมีดังนี้:

ในขณะที่ทำเหรียญกษาปณ์ คุณสามารถกำหนดความกว้างของเวลาที่ชัดเจนด้วย -z ตัวเลือกแทน
(-z แทนที่ -e ถ้าให้ทั้งสองอย่าง หากไม่มีการกำหนดค่าเริ่มต้นคือ 6 ตัวอักษร (time
รูปแบบ: YYMMDD))

กฎสำหรับกำหนดความกว้างของเวลาที่เหมาะสมโดยอัตโนมัติจาก -e ถ้าไม่ -z ตัวเลือก
จะได้รับคือ:

* ระยะเวลา >= 2 ปี จากนั้นรูปแบบเวลา YY จะถูกปัดเศษลงเป็นปีที่ใกล้ที่สุด
เริ่ม;
* 2 ปี < ระยะเวลา <= 2 เดือน จากนั้นรูปแบบเวลา YYMM จะถูกปัดเศษลงเป็น
เริ่มเดือนที่ใกล้ที่สุด
* 2 เดือน < ระยะเวลา <= 2 วัน จากนั้นรูปแบบเวลา YYMMDD จะถูกปัดเศษลงเป็น
เริ่มต้นวันที่ใกล้ที่สุด
* 2 วัน < ระยะเวลา <= 2 นาที จากนั้นรูปแบบเวลา YYMMDDhhmm จะถูกปัดเศษลงเป็น
เริ่มต้นนาทีที่ใกล้ที่สุด
* ระยะเวลา < 2 นาที จากนั้นใช้รูปแบบเวลา YYMMDDhhmmss เป็นวินาที

โปรดทราบว่าการปัดเศษตามเวลา UTC ไม่ใช่เวลาท้องถิ่น นี้สามารถนำไปสู่
ผลลัพธ์ที่น่าประหลาดใจในตอนแรกเมื่อปัดเศษลงเช่นวันในเขตเวลาอื่นที่ไม่ใช่ GMT
(UTC = GMT) อาจเข้าใจได้ชัดเจนขึ้นหากคุณใช้ -u ตัวเลือก

-z ความกว้าง
พื้นที่ปลูก -z ตัวเลือกนี้ใช้ในระหว่างการทำเหรียญและให้ผู้ใช้เลือกความกว้างของเวลาได้
สนาม. ดูเพิ่มเติมที่ -e ตัวเลือกที่กำหนดร่วมกับ -m เพื่อระบุโดยปริยาย
ความกว้างของฟิลด์เวลาภายใต้คำอธิบายของ -e ธง. ความกว้างที่ถูกต้องคือ 6,10 หรือ 12
ตัวอักษรที่สอดคล้องกับ: YYMMDD, YYMMDDhhmm และ YYMMDDhhmmss ปัดเศษลง
เป็นวันที่ใกล้ที่สุดหรือนาทีตามลำดับ

โปรดทราบว่าการปัดเศษตามเวลา UTC ไม่ใช่เวลาท้องถิ่น นี้สามารถนำไปสู่
ผลลัพธ์ที่น่าประหลาดใจในตอนแรกเมื่อปัดเศษลงเช่นวันในเขตเวลาอื่นที่ไม่ใช่ GMT
(UTC = GMT) อาจเข้าใจได้ชัดเจนขึ้นหากคุณใช้ -u ตัวเลือก

-g ระยะเวลา
พื้นที่ปลูก -g ตัวเลือกใช้สำหรับตรวจสอบแสตมป์ hashcash ด้วย -c ตัวเลือกและ
ระบุระยะเวลาผ่อนผันสำหรับนาฬิกาเอียง กล่าวคือ ถ้าตราประทับ hashcash มาถึงพร้อมวันที่ใน
ในอนาคตหรือในอดีตจะไม่ถูกปฏิเสธว่าเป็นวันแห่งอนาคต (หรือเป็น
หมดอายุ) เว้นแต่จะล้ำยุคกว่า (หรือหมดอายุไปนานแล้ว) กว่านี้
ระยะเวลา. ค่าเริ่มต้นคือ 2 วัน ซึ่งหมายความว่าตราบใดที่นาฬิกาของระบบส่งเป็น
ไม่เกิน 2 วันข้างหน้า (หรือ 2 วันหลัง) ของนาฬิการะบบรับ
ยังคงยอมรับการประทับตรา hashcash

หน่วยเริ่มต้นสำหรับระยะเวลาผ่อนผันคือวินาที สามารถใช้คำต่อท้ายอักขระเดียวได้
เพื่อระบุหน่วยสำรอง (m = นาที, h = ชั่วโมง, d = วัน, M = เดือน, y = Y =
ปี และ s = วินาที)

-d จัดเก็บแสตมป์ในฐานข้อมูลการใช้จ่ายซ้ำซ้อน ถ้าเคยเห็นแสตมป์มาก่อนก็จะเป็น
ถูกปฏิเสธแม้ว่าจะเป็นอย่างอื่นที่ถูกต้อง ไฟล์ฐานข้อมูลเริ่มต้นคือ ฐานข้อมูล.sdb in
ไดเร็กทอรีปัจจุบัน เฉพาะตราประทับที่ถูกต้องเท่านั้นที่จะเก็บไว้ในฐานข้อมูล
เฉพาะตราประทับที่ตรวจสอบแล้วเท่านั้นที่จะเก็บไว้ในฐานข้อมูล เว้นแต่ -y ตัวเลือกที่
ให้

-f dbname
ใช้ dbname แทนชื่อไฟล์เริ่มต้นสำหรับฐานข้อมูลคู่ใช้

-p ระยะเวลา
ล้างฐานข้อมูลของตราประทับที่หมดอายุ หากพ้นระยะเวลาที่กำหนดตั้งแต่
ครั้งล่าสุดมันถูกล้าง เพื่อความสะดวก -p ตอนนี้ เทียบเท่ากับ -p 0 ทั้งสองอย่าง
หมายถึงการล้างตอนนี้ ไม่ว่าฐานข้อมูลจะถูกล้างครั้งสุดท้ายเมื่อใด

หากใช้ร่วมกับ -j ทรัพยากร เฉพาะแสตมป์ที่ทำขึ้นสำหรับทรัพยากรที่กำหนด
ถูกล้าง

หากใช้ร่วมกับ -k แสตมป์ทั้งหมดแม้กระทั่งแสตมป์ที่ยังไม่หมดอายุจะถูกลบออก เป็นไปได้
ใช้ร่วมกับ -t เวลา ให้หมดอายุราวกับว่าเวลาปัจจุบันเป็นเวลาที่กำหนด

-k ใช้กับ option -p เพื่อขอให้ลบแสตมป์ทั้งหมดมากกว่าที่จะหมดอายุ

-j ทรัพยากร
ใช้กับ option -p เพื่อขอเพียงตราประทับที่ตรงกับชื่อทรัพยากรที่กำหนดคือto
ถูกล้าง แทนที่จะเป็นค่าเริ่มต้นที่จะล้างแสตมป์ที่หมดอายุทั้งหมด ถ้า
ชื่อทรัพยากรเป็นสตริงว่าง ตราประทับทั้งหมดตรงกัน (ซึ่งเทียบเท่ากับ
ละเว้น -j ตัวเลือก)

หมายเหตุ -E, -M และ -S ประเภทของแฟล็กการแข่งขันยังใช้กับทรัพยากรที่มอบให้กับ -j
ทรัพยากร ธง.

-s พิมพ์ข้อมูลเวลาเท่านั้น และอย่าดำเนินการสร้างตราประทับ ถ้ารวมกับ
-b บิต ค่าประมาณการพิมพ์ธงว่าขนาดการชนกันที่ร้องขอจะใช้เวลานานแค่ไหน
คำนวณ if -s โดยตัวมันเองเพียงพิมพ์ความเร็วของตัวค้นหาการชนกัน ปริ้น
ค่าประมาณระยะเวลาเริ่มต้นของจำนวนบิตที่จะใช้ -b ผิดนัด.

-h พิมพ์ข้อมูลการใช้งานแบบสั้น

-v พิมพ์ข้อมูลที่ละเอียดมากขึ้นเกี่ยวกับการทำตราประทับหรือการตรวจสอบ (ถ้า
-v เป็นอาร์กิวเมนต์เดียว พิมพ์หมายเลขเวอร์ชันเครื่องมือ)

-V พิมพ์หมายเลขรุ่นเครื่องมือ

-q โหมดแบทช์ ไม่พิมพ์ข้อมูลอื่นใดนอกจากเอาต์พุต ตัวเลือกนี้จะแทนที่ -v
ตัวเลือก

-X เมื่อสร้างเหรียญ พิมพ์อีเมลแฮชแคช X-header 'X-Hashcash: ' ก่อนประทับตรา
หากไม่มีตัวเลือกนี้ จะมีการพิมพ์ตราประทับเปล่าเท่านั้น

เมื่อตรวจสอบ หลังจากสแกนแสตมป์ที่กำหนดเป็นอาร์กิวเมนต์แล้ว ให้สแกน stdin เพื่อหาบรรทัด
เริ่มต้นด้วยสตริง 'X-Hashcash:' และใช้ส่วนที่เหลือของบรรทัดที่ตรงกันเป็น
ประทับ. สแกนเฉพาะบรรทัดที่ขึ้นและลงที่บรรทัดแรกว่างเท่านั้น (ดูเพิ่มเติม
-i ธงซึ่งสามารถใช้เพื่อแทนที่สิ่งนี้) บรรทัดว่างเป็นตัวคั่นที่ใช้เพื่อ
แยกส่วนหัวออกจากเนื้อหาของข้อความเมลหรือบทความ USENET นี้มันมีความหมาย
เพื่อให้สะดวกต่อการไพพ์ข้อความเมลหรือบทความ USENET ไปยัง hashcash บน stdin

-x นามสกุล
สตริงส่วนขยายที่ประกอบด้วยชุดค่าชื่อ มีการอธิบายรูปแบบส่วนขยายไว้
ด้านล่างในส่วนรูปแบบแสตมป์แฮชแคช ซึ่งช่วยให้ผู้ใช้สามารถกำหนด
ของตัวเองที่มีนามสกุลซึ่งถูกแฮชเข้าไปในตราประทับ, ตรวจสอบโดยผู้รับว่า
สนับสนุนพวกเขาและละเลยโดยผู้รับที่ไม่สนับสนุนพวกเขา สังเกตนามสกุล
กลไกเบ็ดยังไม่ได้ดำเนินการ ซึ่งจะมาในรุ่นต่อๆ ไป

-i เมื่อตรวจสอบและใช้งาน -X ธง ละเว้นขอบเขตบรรทัดว่างระหว่างส่วนหัว
และเนื้อความของข้อความ และตรวจสอบการชนกันในร่างกายด้วยหากไม่พบตัวใดตัวหนึ่ง
ในส่วนหัว

-t เวลา
แสร้งทำเป็นว่าเวลาปัจจุบันเป็นเวลาที่กำหนดเพื่อจุดประสงค์ในการทำแสตมป์ การตรวจสอบ
แสตมป์และการลบแสตมป์เก่าออกจากฐานข้อมูล เวลาจะได้รับในรูปแบบตาม
รูปแบบ UTCTIME YYMMDD[hhmm[ss]]

เวลาจะแสดงเป็นเวลาท้องถิ่นโดยค่าเริ่มต้น ใช้กับ -u ธงเพื่อให้เวลาในUTC
(GMT).

คุณยังสามารถให้เวลาที่สัมพันธ์กับเวลาปัจจุบันโดยนำหน้าอาร์กิวเมนต์ด้วย +
หรือ -. หน่วยเริ่มต้นสำหรับเวลาสัมพัทธ์คือวินาที คำต่อท้ายอักขระตัวเดียวสามารถ
ใช้เพื่อระบุหน่วยสำรอง (m = นาที, h = ชั่วโมง, d = วัน, M = เดือน, y =
Y = ปี และ s = วินาที)

หมายเหตุ: เมื่อเวลาแสดงเป็นเวลาท้องถิ่น หากมีการปรับเวลาตามฤดูกาลใน . ของคุณ
เขตเวลา มีหนึ่งหรือสองชั่วโมงที่คลุมเครือต่อปีในขณะที่เปลี่ยนจาก
เวลาออมแสงเป็นเวลาปกติ

-u เวลาที่แน่นอนของอินพุตและเอาต์พุตใน UTC (GMT) แทนเวลาท้องถิ่น

-a ระยะเวลา
บวก (หรือลบถ้าตัวเลขเป็นลบ) ค่าสุ่มจากเวลาปัจจุบันก่อน
การทำแสตมป์ เป็นการซ่อนเวลาที่สร้างตราประทับ ซึ่งอาจเป็นประโยชน์สำหรับ
ผู้ใช้ที่ไม่ระบุชื่อ หมายเหตุการเพิ่ม (แทนที่จะลบ) เวลาสุ่มอาจมีความเสี่ยงถ้า
แสตมป์ใช้เวลาน้อยกว่าเวลาที่เพิ่มเข้ามาเนื่องจากผู้รับจะปฏิเสธการประทับตรา
กับการประทับเวลาในอนาคต

-n พิมพ์ชื่อทรัพยากรที่แยกวิเคราะห์จากตราประทับที่กำลังตรวจสอบ ส่งคืนรหัสทางออกที่ไม่ได้เลือกบน
ทางออก

-l พิมพ์จำนวนวินาทีที่เหลือก่อนที่ตราประทับจะหมดอายุ ส่งคืนรหัสทางออกที่ไม่ได้เลือกบน
ทางออก

หมายเหตุ: การคำนวณรวมระยะเวลาผ่อนผัน จึงสามารถเป็นระยะเวลาผ่อนผันได้ถึง 2 เท่า
นานกว่าที่คุณคาดไว้ (นาฬิกาเร็ว แต่ระบบต้องถือว่าทำได้
จะช้า) หากต้องการยกเว้นระยะเวลาผ่อนผันให้เพิ่ม -g0 เพื่อกำหนดระยะเวลาผ่อนผันเป็น0
สำหรับการคำนวณ

-w พิมพ์จำนวนบิตของการชนกันของแสตมป์ ส่งคืนรหัสทางออกที่ไม่ได้เลือกเมื่อออก

-y ส่งกลับความสำเร็จหากตราประทับถูกต้องแม้ว่าจะไม่ได้ตรวจสอบอย่างสมบูรณ์ ใช้กับ -c
ที่ไม่ได้ทั้งหมด -d, -r ถูกระบุเพื่อรับรหัสออกจากความสำเร็จที่ถูกต้องแต่บางส่วน
ตรวจสอบแสตมป์ ในทำนองเดียวกันสามารถใช้กับ -n, -l, -w มีผลเช่นเดียวกัน

-M เมื่อตรวจสอบแสตมป์ ให้อนุญาตสัญลักษณ์แทน * จับคู่ในชื่อทรัพยากรเพื่อให้มัน
ง่ายกว่าในการระบุที่อยู่อีเมลหลายรายการและอนุญาตให้จับคู่ที่อยู่ที่รับทั้งหมด
และที่อยู่รวมทั้งโดเมนย่อย นี่คือค่าเริ่มต้น ดูสิ่งนี้ด้วย -S, -E และ -C

-S เมื่อตรวจสอบตราประทับ ให้ใช้ข้อความธรรมดาเปรียบเทียบเพื่อเปรียบเทียบชื่อทรัพยากรกับที่อยู่ใน
แสตมป์. ดูสิ่งนี้ด้วย -M, -E และ -C.

-E เมื่อตรวจสอบตราประทับ ให้ใช้นิพจน์ทั่วไปเพื่อระบุชื่อทรัพยากรที่จะทำ
ง่ายกว่าในการระบุที่อยู่อีเมลหลายรายการ ที่อยู่ที่รับทั้งหมด คลาสของนามสกุล
ที่อยู่และที่อยู่รวมทั้งโดเมนย่อย หมายเหตุ ไวยากรณ์นิพจน์ทั่วไปคือ POSIX
สไตล์: ไม่จำเป็นต้องใส่เครื่องหมายพิเศษเพื่อให้มีความหมายพิเศษ แต่
จะต้องอ้างอิงด้วย \ กับอักขระนั้นในสตริงที่ค้นหา NS
นิพจน์ทั่วไปได้เพิ่ม ^ โดยอัตโนมัติที่จุดเริ่มต้นและ $ เพิ่มในตอนท้าย
หากไม่ได้ระบุไว้ อักขระพิเศษ ^ ตรงกับจุดเริ่มต้นของ
resouce และ $ ตรงกับจุดสิ้นสุดของทรัพยากร

(หมายเหตุ แม้ว่าจะคอมไพล์ด้วยนิพจน์ทั่วไป BSD ไวยากรณ์รูปแบบ POSIX ก็ถูกใช้เช่นกัน
โปรดทราบว่านิพจน์ทั่วไป BSD ไม่รองรับช่วง {}.)

-C ตามค่าเริ่มต้น ทรัพยากรจะถูกกำหนดเป็นอักษรตัวพิมพ์เล็กในการขุดและการตรวจสอบ NS
-C แฟล็กแทนที่สิ่งนี้เพื่อให้ทรัพยากรได้รับการปฏิบัติเหมือนตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ในการตรวจสอบ
และไม่ถูกบัญญัติขึ้นในโรงกษาปณ์

-P พิมพ์ข้อมูลความคืบหน้า (จำนวนการทำซ้ำ, การทำซ้ำที่คาดไว้, เปอร์เซ็นต์ที่เสร็จสิ้น, ดีที่สุด
ขนาดแสตมป์ที่พบจนถึงปัจจุบัน)

-O แกน
เลือก hashcash core ด้วยหมายเลขนั้น ปัจจุบัน 0-9 เป็นคอร์ที่ถูกต้อง ไม่ใช่คอร์ทั้งหมด
ทำงานบนสถาปัตยกรรมทั้งหมด เช่นบางตัวเป็นแอสเซมเบลอร์เฉพาะ x86 อื่น ๆ เฉพาะ PPC
ผู้ประกอบ. หากคอร์ไม่ถูกต้อง hashcash จะส่งคืนความล้มเหลวและอธิบายอะไร
ที่เกิดขึ้น

-Z n
บีบอัดตราประทับ นี่คือการแลกเปลี่ยนระหว่างเวลากับอวกาศ แสตมป์ที่ใหญ่กว่านั้นเร็วกว่า แต่
เนื้อหาน่าเกลียดเล็กน้อย สำหรับแสตมป์ที่เร็วที่สุด (ค่าเริ่มต้น) ให้ใช้ -Z 0; ส่วนหนึ่ง
แสตมป์บีบอัดใช้ -Z 1; สำหรับแสตมป์ที่บีบอัดมาก แต่ค่อนข้างช้าให้ใช้ -Z 2
(หมายเหตุ: เนื่องจากข้อบกพร่องที่ค้นพบในช่วงหลัง ทำให้ -Z2 เหมือนกับ -Z1 จนถึงตอนนี้ จนกว่าฉันจะแก้ไขได้
นั่น.)

ตัวอย่าง


การสร้าง แสตมป์

"แฮชแคช -s"
พิมพ์ข้อมูลเวลาเกี่ยวกับจำนวนการชนที่เครื่องสามารถลองได้ต่อวินาที

"แฮชแคช -sv"
การเปรียบเทียบที่แม่นยำขึ้นแต่ค่อนข้างช้าของการทำมิ้นต์เฉพาะตัวประมวลผลที่แตกต่างกัน
แกน

"hashcash -s -b ค่าเริ่มต้น"
พิมพ์ระยะเวลาที่เครื่องใช้ในการคำนวณการชนกันของขนาดเริ่มต้น (แต่
ไม่ได้คำนวณการชนกันจริง ๆ )

"แฮชแคช -s -b 32"
พิมพ์ระยะเวลาที่เครื่องจะใช้ในการคำนวณการชนกันแบบ 32 บิต (แต่อย่า
จริง ๆ แล้วคำนวณการชนกัน)

"แฮชแคช -m"
มิ้นท์แสตมป์ จะถามชื่อทรัพยากรและมิ้นต์ด้วยค่าเริ่มต้น (จำนวน
บิตการชนกัน)

"แฮชแคช -m foo"
คำนวณการชนกันของทรัพยากร foo จะสะระแหน่ด้วยค่าเริ่มต้น (จำนวนการชนกัน
บิต)

"แฮชแคช -m foo -b 10"
คำนวณการชนกัน 10 บิตบนทรัพยากร foo

"แฮชแคช -a -3d"
ลบเวลาสุ่มระหว่าง 0 วันถึง 3 วันจากเวลาที่สร้างแสตมป์
นี่เป็นปัจจัยเดียวกับที่ mixmaster ใช้เพื่อลดความเสี่ยงของความสัมพันธ์ระหว่างเวลา

การตรวจสอบ แสตมป์

"hashcash -w 1:24:040806:foo::511801694b4cd6b0:1e7297a"
รายงานมูลค่าของตราประทับ (จำนวนการชนกัน) ที่มีอยู่ ตัวอย่างคือ
การชนกันแบบ 24 บิต ซึ่งใช้เวลาเฉลี่ย 25 ​​วินาทีในการสร้างบน 3Ghz P4

"hashcash -mq -b 10 foo ⎪ hashcash -w"
สร้างตราประทับในโหมดแบทช์ ส่งผ่านไปยัง hashcash บน stdin เพื่อตรวจสอบ ให้พิมพ์อย่างไร
มีหลายบิต

"hashcash -n 1:24:040806:foo::511801694b4cd6b0:1e7297a"
รายงานชื่อทรัพยากรจากตราประทับ ชื่อทรัพยากรในตัวอย่างคือ foo

"hashcash -l -e 30y 1:24:040806:foo::511801694b4cd6b0:1e7297a"
แจ้งระยะเวลาที่ตราประทับจะหมดอายุหากหมดอายุใน 30 ปีนับจากการสร้าง
วันที่. (หมายเหตุวันที่ไกลเกินไปในอนาคตจะสิ้นสุดในยุค 2038 ซึ่งก็คือ
แอนะล็อกเวลา unix ของบั๊ก y2k)

การตรวจสอบ แสตมป์

"hashcash -c 1:24:040806:foo::511801694b4cd6b0:1e7297a"
ตรวจสอบว่าแสตมป์ถูกต้องหรือไม่ หมายเหตุ เนื่องจากเราไม่ได้ตรวจสอบตราประทับในการใช้จ่ายซ้ำซ้อน
ฐานข้อมูลและไม่ได้ระบุชื่อทรัพยากรหรือจำนวนบิตของการชนกันที่ต้องการ
และ hashcash จะถือว่าตราประทับที่ไม่ได้รับการตรวจสอบอย่างสมบูรณ์และจะรายงานว่าถูกต้อง
แต่ยังไม่ได้ตรวจสอบทั้งหมด หรือไม่ถูกต้องหากมีปัญหากับตราประทับ

"hashcash -c -b24 1:24:040806:foo::511801694b4cd6b0:1e7297a"
ตรวจสอบว่าค่าของตราประทับมากกว่าหรือเท่ากับ 24 บิต ตัวอย่างนี้มี24
ค่าบิต หากคุณเพิ่มจำนวนบิตที่ร้องขอหรือแทนที่ตราประทับด้วยหนึ่ง
ด้วยการชนกันน้อยกว่า 24 บิต ตราประทับจะถูกปฏิเสธ

"hashcash -c -b24 -r foo 1:24:040806:foo::511801694b4cd6b0:1e7297a"
ด้านบนตรวจสอบว่าแสตมป์มีค่าเพียงพอหรือไม่ แต่ตรวจสอบเพิ่มเติมด้วยว่า
ชื่อทรัพยากรที่ระบุตรงกับชื่อทรัพยากรในตราประทับ

สอง การใช้จ่าย การป้องกัน

ตัวอย่างที่ให้ไว้ใน "การตรวจสอบตราประทับ" สามารถปรับเปลี่ยนเพื่อให้ฐานข้อมูลใช้ซ้ำซ้อนได้
เพื่อไม่ให้ประทับตราเดิมซ้ำ XNUMX ครั้ง โปรดทราบว่าจะมีการเช็คอินแสตมป์เท่านั้นใน
และเพิ่มลงในฐานข้อมูลหากถูกต้องและตรวจสอบครบถ้วน (จำนวน . ที่ต้องการ
มีการระบุบิตของการชนกันและระบุทรัพยากรแล้ว)

"hashcash -cd -b 10 -r foo 1:24:040806:foo::511801694b4cd6b0:1e7297a"
ตรวจสอบตราประทับและเพิ่มลงในฐานข้อมูลที่ใช้ซ้ำสองครั้งหากถูกต้อง (มีทรัพยากรที่ถูกต้อง
ชื่อและค่าที่เพียงพอ)

"hashcash -cd -b 10 -r foo 1:24:040806:foo::511801694b4cd6b0:1e7297a"
พยายามใช้แสตมป์เป็นสองเท่า จะถูกปฏิเสธเป็นการใช้จ่ายซ้ำซ้อน

แสตมป์ หมดอายุ

เพื่อป้องกันไม่ให้ฐานข้อมูลทวีคูณเพิ่มขึ้นอย่างไม่มีกำหนด ผู้รับสามารถร้องขอได้
แสตมป์มีอายุไม่เกินระยะเวลาที่กำหนด หลังจากหมดอายุแสตมป์เก่าสามารถดรอปจาก
ฐานข้อมูลการใช้จ่ายสองเท่าเนื่องจากไม่จำเป็นต้องใช้อีกต่อไป - แสตมป์ที่หมดอายุสามารถปฏิเสธได้
โดยอาศัยอายุของพวกมันล้วนๆ ดังนั้นช่องว่างที่ตราประทับที่หมดอายุใช้ไปเป็นสองเท่า
สามารถบันทึกฐานข้อมูลได้โดยไม่มีความเสี่ยงในการยอมรับการประทับตราที่หมดอายุ

ช่องที่สามของตราประทับคือเวลา UTC ตั้งแต่วันที่ 1 มกราคม 1970 เวลาเริ่มต้น
รูปแบบคือ YYMMDD เวลาปัดเศษลงเป็นวันที่ใกล้ที่สุด ระยะเวลาที่ใช้ได้เริ่มต้นคือ 28
วัน

คุณสามารถระบุช่วงเวลาอื่นที่มีผลบังคับใช้กับ -e ตัวเลือก

"hashcash -cd -b 10 -e 2d -r foo 1:24:040806:foo::511801694b4cd6b0:1e7297a"
ลองตรวจสอบตราประทับเก่า ตราประทับด้านบนนี้สร้างขึ้นเมื่อ 11 ส.ค. 2002

เราให้ตัวเลือก -e 2d ดังนั้นวันหมดอายุของแสตมป์คือ 2 วันหลังจากสร้างซึ่งขณะนี้
ในอดีต

หมายเหตุ: หากแสดงเวลาในการสร้างเป็นตราประทับเป็นวัน การสร้างที่แม่นยำ
date คือจุดเริ่มต้นของวันที่ระบุในเวลา UTC (คล้ายกับหน่วยอื่น
เวลาที่สร้างจะถูกปัดเศษลงไปที่จุดเริ่มต้นของหน่วยที่แสดง)
สำหรับหน่วยเป็นวัน เช่น อาจหมายถึงขึ้นอยู่กับเขตเวลาของคุณที่
ตราประทับถือว่าไม่ถูกต้องภายในระยะเวลาที่กำหนดเป็นวัน
เทียบกับมุมมองญาติของคุณว่าวันนี้เป็นวันใด เนื่องจากการคำนวณขึ้นอยู่กับ
เวลาปัจจุบันใน UTC และเวลาที่สร้างตราประทับจะแสดงเป็นเวลา UTC

"hashcash -cd -b 10 -r foo 1:24:040806:foo::511801694b4cd6b0:1e7297a"
ทดสอบว่าตราประทับนั้นถูกต้องหรือไม่ เว้นแต่หมดอายุแล้ว ละเว้น -e
บอก hashcash ว่าแสตมป์ไม่มีวันหมดอายุ ระยะเวลาหมดอายุตลอดกาลยังสามารถ
ให้ชัดเจนดังนี้ -e 0โดยที่ระยะเวลาหมดอายุเป็น 0 หมายถึงตลอดไป

การกวาดล้าง เก่า แสตมป์

ถ้า -c, -d ใช้ตัวเลือกร่วมกันทุกครั้งที่มีการตรวจสอบตราประทับหากถูกต้องและ
ทุกแง่มุมบังคับของตราประทับได้รับการตรวจสอบแล้ว (การตรวจสอบบิตการชนกัน, ทรัพยากร
ตรวจสอบชื่อ) จากนั้นตราประทับและระยะเวลาหมดอายุจะถูกเขียนลงในไฟล์ฐานข้อมูล NS
ระยะเวลาหมดอายุเริ่มต้นถ้าไม่ได้กำหนดระยะเวลาหมดอายุไว้อย่างชัดเจนกับ -e ตัวเลือกคือ 28
วัน (เช่น แสตมป์จะหมดอายุหลังจาก 4 สัปดาห์)

สะระแหน่ก่อนแล้วจึงเพิ่มตราประทับ:

"hashcash -m -b 10 foo -e 1m > ตราประทับ"
หมายเหตุ: เราได้ระบุวันหมดอายุของเหรียญกษาปณ์ในตัวอย่างนี้ เพื่อให้แน่ใจว่าตราประทับ
เวลาสร้างจะได้รับในความละเอียดสูงเพียงพอในตราประทับที่ตราประทับจะไม่
ถือว่าหมดอายุในเวลาที่สร้าง (เรียกคืนความละเอียดเริ่มต้นเป็นวัน
ตราประทับที่สร้างขึ้นด้วยเวลาสร้างที่ปัดเศษลงไปที่จุดเริ่มต้นของวันคือ
ไม่น่าจะถือว่าใช้ได้ 1 นาทีต่อมา เว้นแต่คุณจะทำตอนเที่ยงคืน UTC
เวลา.)

"hashcash -cd -e 1m -b 10 -r foo < ตราประทับ"
แสตมป์จะหมดอายุใน 1 นาที รอ 1 นาทีแล้วแจ้งคำขอที่หมดอายุอย่างชัดเจน
แสตมป์ถูกล้าง:

"แฮชแคช -p ตอนนี้"
จากนั้นลองส่งตราประทับเดิมอีกครั้ง:

"hashcash -cd -e 1m -b 10 -r foo < ตราประทับ"
และตราประทับก็จะถูกปฏิเสธอยู่ดี เพราะมันหมดอายุ แสดงว่าเหตุใดจึงไม่ใช่
จำเป็นต้องเก็บตราประทับนี้ไว้ในฐานข้อมูล

ด้วยฐานข้อมูลเริ่มต้น (รูปแบบ sdb) เนื้อหาของฐานข้อมูลนั้นมนุษย์สามารถอ่านได้
เพื่อให้คุณสามารถดูเนื้อหาได้โดยจัดประเภทไว้ที่เทอร์มินัล:

"cat hashcash.sdb"
เพื่อดูว่ามีการเพิ่มตราประทับจริง ๆ แล้วหลังจาก puring ภายหลังถูกลบออกเนื่องจาก
หมดอายุ

การกวาดล้าง เก่า แสตมป์ on ความต้องการ

เพื่อความสะดวก คุณสามารถล้างข้อมูลได้พร้อมๆ กับการตรวจสอบตราประทับโดยใช้ปุ่ม -p ตัวเลือก
กับ -c ตัวเลือก

"hashcash -m -b 10 foo > ตราประทับ"
"hashcash -cd -p ตอนนี้ -e 1 -b 10 -r foo < ตราประทับ"
การล้างแสตมป์ทุกครั้งที่ใช้งานอาจไม่มีประสิทธิภาพ เนื่องจากฐานข้อมูลทั้งหมดจะต้องเป็น
สแกนหาแสตมป์หมดอายุ โดยให้ช่วงเวลากับ -p ตัวเลือกคุณสามารถบอก
"hashcash" เพื่อล้างไม่บ่อยกว่าช่วงเวลานั้นตั้งแต่การล้างครั้งก่อน

ตัวอย่างเช่น:

"hashcash -cd -p 1d -e 1 -b 10 -r foo < ตราประทับ"
บอก "hashcash" ให้ล้างแสตมป์ที่หมดอายุไม่เกินวันละครั้ง

"แฮชแคช -p 1M -j foo"
บอก "hashcash" ให้ล้างเฉพาะแสตมป์ที่หมดอายุจับคู่ทรัพยากร foo เดือนละครั้ง

"แฮชแคช -p ตอนนี้ -k"
บอก "hashcash" ให้ล้างแสตมป์ทั้งหมด (หมดอายุและยังไม่หมดอายุ) ทันที

ประทับ รูป (เวอร์ชั่น 1)


รูปแบบตราประทับปัจจุบันคือเวอร์ชัน 1 เครื่องมือนี้สามารถตรวจสอบ hashcash เวอร์ชัน 0 แสตมป์
เช่นกัน แต่ตราประทับเวอร์ชัน 0 จะไม่ถูกสร้างขึ้นอีกต่อไปเนื่องจากกำลังถูกเลิกใช้เพื่อสนับสนุน
รูปแบบตราประทับ v1 ที่ขยายได้มากขึ้น

Ver:บิต:ข้อมูล:ทรัพยากร:[ต่อ]:ทั้งหมด:ตอบโต้

ที่ไหน

Ver = 1
บิต = มีการอ้างว่ามีการชนกันบางส่วนกี่บิต
ข้อมูล = YYMMDD[อืม[ss]]
ทรัพยากร = สตริงทรัพยากร (เช่น ที่อยู่ IP ที่อยู่อีเมล)
ต่อ = ส่วนขยาย -- ละเว้นในเวอร์ชันปัจจุบัน
รูปแบบของนามสกุล:

[name1[=val1[,val2...]];[name2[=val1[,val2...]]...]]
โปรดทราบว่าค่าสามารถประกอบด้วย = ตัวอย่างส่วนขยาย (ไม่ใช่ของจริง):

name1=2,3;name2;name3=var1=2,var2=3,2,val

ซึ่งจะเป็นนามสกุล name1 มีค่า 2 และ 3; นามสกุล name2 ไม่มีค่า;
นามสกุล name3 มี 3 ค่า "var1=2", "var2=3", "2" และ "val" แฮชแคช
ส่วนขยายอาจตีความค่าตามที่เห็นสมควร เช่น "var1=2" อาจเป็นค่า
ของตัวเลือกสำหรับชื่อนามสกุล3.

ทั้งหมด = สตริงของอักขระสุ่มจากตัวอักษร a-zA-Z0-9+/= เพื่อหลีกเลี่ยงการชนกับ
แสตมป์ของผู้ส่งรายอื่น
ตอบโต้ = ในการหาตราประทับที่มีจำนวนบิตการชนกันที่ต้องการ ต้องลองหลายๆ อย่าง
สายต่าง ๆ ตัวนับนี้จะเพิ่มขึ้นในการลองแต่ละครั้ง เคาน์เตอร์ยังประกอบด้วย
ตัวอักษรจากตัวอักษร a-zA-Z0-9+/= (หมายเหตุ ไม่จำเป็นต้องดำเนินการใดๆ เพื่อ
นับตามลำดับ)

ใช้ hashcash ออนไลน์โดยใช้บริการ onworks.net


Ad


Ad