0

เครื่องมือสร้างแฮช SRI

สร้างแฮช Subresource Integrity สำหรับไฟล์ JS หรือ CSS ใดๆ และรับแท็ก script หรือ link ที่พร้อมนำไปวางใช้งานได้ทันที

🔒 ประมวลผลทั้งหมดในเบราว์เซอร์ของคุณ — ไม่มีการอัปโหลดสิ่งใดที่คุณป้อนที่นี่

🔗

ลากและวางรูปภาพ

ทำงานกับไฟล์ JS หรือ CSS ใดก็ได้ — ไม่มีการอัปโหลดใดๆ แฮชถูกคำนวณภายในเครื่องของคุณ

Subresource Integrity อนุญาตเฉพาะไดเจสต์ sha256, sha384 หรือ sha512 ที่เข้ารหัสแบบ Base64 — เครื่องมือนี้จำกัดตัวเลือกให้สอดคล้องกัน เพื่อให้ผลลัพธ์ถูกต้องตามมาตรฐานเสมอ

กำลังประมวลผล... 0%
กำลังอ่านไฟล์
กำลังคำนวณไดเจสต์
กำลังเข้ารหัสเป็น base64
เสร็จสิ้น

ผลลัพธ์

Subresource Integrity (SRI) ช่วยให้เบราว์เซอร์ตรวจสอบว่าสคริปต์หรือสไตล์ชีตที่ดึงมาจาก CDN หรือโฮสต์ภายนอกไม่ถูกแก้ไขก่อนทำงาน — เบราว์เซอร์จะแฮชข้อมูลที่ดาวน์โหลดมาและปฏิเสธการเรียกใช้ไฟล์นั้นหากไดเจสต์ไม่ตรงกับค่า integrity ที่คุณเผยแพร่ไว้ เครื่องมือนี้จะคำนวณไดเจสต์ดังกล่าวให้กับไฟล์ JS หรือ CSS ใดๆ ที่คุณลากมาวาง โดยทั้งหมดทำงานภายในแท็บเบราว์เซอร์ของคุณ ไฟล์จึงไม่ต้องออกจากเครื่องของคุณเพื่อนำมาแฮชเลย

เครื่องมือแฮชทั่วไปจะไม่สร้างค่า SRI ที่ใช้งานได้: ข้อกำหนดกำหนดให้ใช้ไดเจสต์ที่เข้ารหัสแบบ Base64 ไม่ใช่สตริงเลขฐานสิบหกที่เครื่องมือตรวจสอบ checksum ส่วนใหญ่แสดงผล และรู้จักอัลกอริทึมเพียงสามตัวเท่านั้น — sha256, sha384 และ sha512 เครื่องมือสร้างนี้จำกัดตัวเลือกอัลกอริทึมไว้เพียงสามตัวนั้นและเข้ารหัสผลลัพธ์ด้วยวิธีที่ถูกต้อง จากนั้นยังทำเพิ่มอีกขั้นด้วยการประกอบแท็ก HTML แบบเต็มล้อมรอบค่าแฮช พร้อมช่อง placeholder สำหรับ src หรือ href ที่คุณแก้ไขได้ทันทีก่อนคัดลอก

เบื้องหลังการทำงาน ไฟล์จะถูกอ่านด้วย File API แฮชด้วยฟังก์ชัน crypto.subtle.digest() ดั้งเดิม และไบต์ผลลัพธ์จะถูกแปลงเป็น Base64 แบบแบ่งส่วนเล็กๆ แทนที่จะใช้การกระจายข้อมูลขนาดใหญ่ในครั้งเดียว — รายละเอียดที่สำคัญเมื่อไฟล์ JS ที่รวมมีขนาดใหญ่เกินประมาณหนึ่งแสนไบต์ ซึ่งวิธีการแปลงแบบธรรมดาอาจไปถึงขีดจำกัด call stack ของเบราว์เซอร์

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