ImageSteg · ซ่อนข้อมูลในรูปภาพหรือไฟล์เสียง

steghide 0.5.1 ที่พอร์ตมาใช้ในเบราว์เซอร์ ครอบคลุมทั้งสองวิธี: พิกเซล/LSB สำหรับ BMP และ PNG และสัมประสิทธิ์ DCT สำหรับ JPEG พร้อมไฟล์เสียงพาหะ PCM WAV และ MP3 ซ่อนไฟล์หรือข้อความ แล้วเปิดเผยอีกครั้งด้วยวลีรหัสผ่าน

ทำงานในเครื่อง 100%

ไฟล์และความลับของคุณไม่ออกจากอุปกรณ์นี้ การถอดรหัส ฝังข้อมูล เข้ารหัส และแยกข้อมูลทำงานภายในแท็บเบราว์เซอร์นี้ทั้งหมด ไม่มีการอัปโหลดไปยังเซิร์ฟเวอร์ จึงไม่มีข้อมูลให้รั่วไหล

1 · รูปภาพหรือเสียงพาหะ

วางรูปภาพหรือไฟล์เสียง JPEG, PNG, WebP, GIF, BMP, PCM WAV หรือ MP3 · ถอดรหัสในเครื่อง ไม่อัปโหลด

คอนเทนเนอร์ที่ใหญ่กว่าเก็บได้มากกว่า: รูปภาพเก็บได้ประมาณหนึ่งไบต์ต่อแปดพิกเซล PCM WAV หนึ่งไบต์ต่อสิบหกแซมเปิล และ MP3 เท่ากับพื้นที่ว่างที่เหลือในเฟรมเสียง

2 · ข้อมูลที่ต้องการซ่อน

ยังไม่ได้เลือกไฟล์

3 · วลีรหัสผ่าน & ตัวเลือก

สามขั้นตอนง่ายๆ

วิธีซ่อนไฟล์ในรูปภาพหรือไฟล์เสียง

ไม่ต้องติดตั้งหรืออัปโหลด: เลือกรูปภาพ WAV หรือ MP3 เพิ่มความลับ แล้วบันทึกผลลัพธ์

1

เลือกรูปภาพหรือไฟล์เสียงพาหะ

เลือก ลากวาง หรือวางรูปภาพ WAV หรือ MP3 ที่จะใช้บรรทุกข้อมูล ไฟล์ใหญ่เก็บได้มากกว่า และภาพที่มีรายละเอียดมากหรือเพลงช่วยซ่อนความเปลี่ยนแปลงได้ดีที่สุด

2

เพิ่มความลับและวลีรหัสผ่าน

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

3

ดาวน์โหลดและแชร์

บันทึกเป็น BMP เพื่อใช้ร่วมกับ steghide หรือเป็น PNG เพื่อให้ไฟล์เล็กลง ใครก็ตามที่มีภาพและวลีรหัสผ่านสามารถเปิดเผยข้อมูลได้

อัลกอริทึมของ steghide พร้อมไฟล์เสียงพาหะในเบราว์เซอร์

การจับคู่กราฟบนพิกเซล สัมประสิทธิ์ DCT และแซมเปิลเสียง

ImageSteg คือ steghide 0.5.1 ที่พอร์ตเป็น TypeScript และครอบคลุมทั้งสองวิธี: พิกเซล/LSB สำหรับ BMP และ PNG และ DCT สำหรับ JPEG นอกจากนี้ยังบรรทุกข้อมูลในเสียง PCM WAV ด้วยวิธีเดียวกัน และในส่วนท้ายที่ไม่ได้ใช้ของเฟรม MP3 ทุกวิธีไม่ได้เพียงเขียนข้อมูลเรียงไปตามไฟล์

ฝังข้อมูลด้วยกราฟ

แซมเปิลจะถูกจัดกลุ่มเป็นจุดยอด แล้วการจับคู่ที่มีน้ำหนักต่ำสุดจะกำหนดสิ่งที่ต้องเปลี่ยน จึงเปลี่ยนเพียงประมาณหนึ่งแซมเปิลต่อค่าที่ซ่อน

ซ่อนข้อมูล JPEG DCT จริง

โคเดกเอนโทรปี JPEG ในตัวอ่านสัมประสิทธิ์ DCT ที่ผ่านควอนไทเซชัน ซ่อนข้อมูลในพาริตี แล้วเข้ารหัสใหม่ ซึ่งเป็นจุดเดียวในกระบวนการที่ libjpeg ของ steghide หยุด รองรับทั้งไฟล์ baseline และ progressive

กระจายข้อมูลตามวลีรหัสผ่าน

การเรียงสับเปลี่ยนที่ใช้ MD5 เป็นซีดกระจายข้อมูลทั่วภาพ จึงไม่ได้เก็บเพย์โหลดที่ซ่อนตามลำดับที่คาดเดาได้

การบีบอัดและเช็กซัม

zlib ลดขนาดเพย์โหลดก่อนฝัง และเช็กซัม CRC32 ที่เลือกใช้ได้จะแจ้งทันทีว่าข้อมูลที่แยกออกมาน่าเชื่อถือหรือไม่

เลือกเข้ารหัส AES-256 ได้

Rijndael ในโหมด CBC พร้อมวิธีสร้างคีย์เดียวกับ libmcrypt รักษาความลับของเพย์โหลด แม้มีคนสงสัยว่าภาพซ่อนข้อมูลอยู่

สิ่งที่คาดหวังได้

ความจุ ความเร็ว และความเข้ากันได้

ข้อจำกัดในทางปฏิบัติของการซ่อนข้อมูลในพิกเซลของรูปภาพ

BMP · PNGวิธีพิกเซล / LSB
JPEGวิธีสัมประสิทธิ์ DCT
0.2 %สัดส่วนแซมเปิลที่เปลี่ยนโดยทั่วไป
อัปโหลด 0 ครั้งทุกอย่างอยู่ในเบราว์เซอร์

ความเข้ากันได้: โครงสร้างบิต การเรียงสับเปลี่ยนแซมเปิล และการเข้ารหัส Rijndael/CBC เป็นไปตาม steghide 0.5.1 จึงอ่านผลลัพธ์ BMP และ JPEG ได้ด้วย steghide extract -sf image.bmp -p passphrase หรือ -sf image.jpg และอ่านไฟล์ที่สร้างจากเครื่องมือบรรทัดคำสั่ง steghide ได้ที่นี่ รูปแบบผลลัพธ์ตรงกับไฟล์พาหะเสมอ: พาหะ JPEG ให้ผลลัพธ์ JPEG เพราะเพย์โหลดอยู่ในสัมประสิทธิ์ที่มีเฉพาะ JPEG บรรทุกได้ สำหรับพาหะแบบพิกเซลมี PNG ให้ควบคู่กับ BMP แต่ steghide CLI อ่าน PNG ไม่ได้

รายละเอียดวิธี JPEG

การรองรับ JPEG ของ steghide เรียกใช้ฟังก์ชันของ libjpeg ชื่อ jpeg_read_coefficients() ซึ่งหยุดกระบวนการถอดรหัสทันทีหลังถอดรหัส Huffman ก่อนการย้อนควอนไทเซชันและ IDCT สิ่งที่เหลือคือสัมประสิทธิ์ DCT ดิบที่ผ่านควอนไทเซชัน เบราว์เซอร์ไม่มี API ให้เข้าถึงข้อมูลนี้ หน้านี้จึงมีโคเดกเอนโทรปี JPEG ของตัวเองแทนตัวถอดรหัสของระบบ ครอบคลุมทั้งไฟล์ baseline และ progressive รวมถึงการสแกนปรับละเอียดแบบ successive approximation

ใช้อัลกอริทึมเดียวกันกับ PNG

ตัวฝังข้อมูลไม่รับรู้รูปแบบไฟล์ แต่ทำงานกับอาร์เรย์พิกเซลที่ถอดรหัสแล้วเท่านั้น วิธี BMP/LSB ของ steghide จึงใช้กับ PNG ได้โดยไม่เปลี่ยนแปลง มีสี่ประเด็นสำคัญในการใช้งานจริง:

คำถามและคำตอบ

คำถามที่พบบ่อยเกี่ยวกับ ImageSteg

ImageSteg ใช้ฟรีหรือไม่?

ใช่ ซ่อนและเปิดเผยข้อมูลได้ฟรี ไม่ต้องสมัคร ไม่มีลายน้ำ และไม่ตั้งข้อจำกัดขนาดไฟล์เพิ่มเติม

รูปภาพหรือไฟล์ลับของฉันถูกอัปโหลดหรือไม่?

ไม่ การถอดรหัส ฝังข้อมูล บีบอัด และเข้ารหัสทำงานในเบราว์เซอร์บนเครื่องด้วย JavaScript และ WebCrypto ไม่มีข้อมูลถูกส่งไปยังเซิร์ฟเวอร์ 73hi

รองรับรูปภาพรูปแบบใดบ้าง?

รูปภาพใดที่เบราว์เซอร์ถอดรหัสได้ก็ใช้เป็นพาหะแบบพิกเซลได้ ส่วน JPEG baseline หรือ progressive ใช้วิธี DCT ของ steghide รูปแบบผลลัพธ์เป็นไปตามพาหะ: JPEG เข้า ได้ JPEG ออก พาหะแบบพิกเซลให้ BMP พร้อมสำเนา PNG เครื่องมือบรรทัดคำสั่ง steghide อ่านผลลัพธ์ BMP และ JPEG ได้ แต่ไม่รองรับ PNG

โหมด JPEG ซ่อนข้อมูลอย่างไร?

ซ่อนในสัมประสิทธิ์ DCT ที่ผ่านควอนไทเซชัน เช่นเดียวกับเครื่องมือบรรทัดคำสั่ง steghide หน้านี้มีโคเดกเอนโทรปี JPEG ที่ถอดรหัสสแกนจนถึงค่าสัมประสิทธิ์ ปรับพาริตี แล้วเข้ารหัสใหม่

ใช้ JPEG progressive ได้หรือไม่?

ได้ ไฟล์ progressive จะถอดรหัสตามลำดับการสแกนทั้งหมด ทั้ง spectral selection และการปรับละเอียดแบบ successive approximation แล้วเขียนกลับด้วยวิธีเดียวกัน ผลลัพธ์จึงยังเป็น JPEG progressive ที่คงสัมประสิทธิ์ต้นฉบับ

แล้ว JPEG ที่เข้ารหัสแบบเลขคณิตล่ะ?

รองรับการอ่าน ไฟล์ที่ใช้ QM (เลขคณิตไบนารี) แทน Huffman เช่น SOF9 สำหรับ sequential และ SOF10 สำหรับ progressive จะถอดรหัสด้วยตัวถอดรหัสเลขคณิตเดียวกับ libjpeg จึงได้สัมประสิทธิ์ตรงกัน ผลลัพธ์เขียนกลับด้วย Huffman เช่นเดียวกับ steghide

ซ่อนข้อมูลได้มากแค่ไหน?

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

เครื่องมือบรรทัดคำสั่ง steghide อ่านผลลัพธ์ได้หรือไม่?

ได้ หากดาวน์โหลด BMP โครงสร้างบิต การเรียงสับเปลี่ยนแซมเปิลตามวลีรหัสผ่าน และการเข้ารหัส Rijndael/CBC เป็นไปตาม steghide 0.5.1

ทำไมแยกข้อมูลไม่ได้หลังแก้ไขรูปภาพ?

เพย์โหลดเก็บอยู่ในค่าพิกเซลแต่ละตัว การบีบอัดซ้ำ ปรับขนาด ใช้ตัวกรอง หรือแปลงเป็นรูปแบบสูญเสียข้อมูล เช่น JPEG จะทำลายเพย์โหลด เก็บ BMP ต้นฉบับหรือสำเนา PNG ที่ไม่สูญเสียข้อมูลไว้

ซ่อนความลับสองชุดในภาพเดียวได้หรือไม่?

ทำไม่ได้ด้วยการฝังซ้ำสองครั้งในไฟล์เดียว รอบที่สองจะเลือกตำแหน่งสุ่มของตัวเองทั่วพาหะและเขียนทับเพย์โหลดแรกบางส่วน เนื่องจากข้อมูลถูกบีบอัดก่อนเข้ารหัส การเปลี่ยนเพียงไม่กี่บิตทำให้ข้อความทั้งหมดอ่านไม่ได้ คุณจึงสูญเสียทั้งข้อความ ไม่ใช่แค่บางส่วน เครื่องมือบรรทัดคำสั่ง steghide ต้นฉบับก็ทำงานแบบเดียวกัน การใช้วลีรหัสผ่านเดิมไม่ช่วย เพราะจะเขียนทับตำแหน่งเดิมตั้งแต่ต้น เหลือเฉพาะข้อความล่าสุด หากต้องการซ้อนหลายชั้นจริงๆ ให้ซ้อนไฟล์แทน: ซ่อนความลับแรกในภาพเล็ก ดาวน์โหลดผลลัพธ์ แล้วซ่อนไฟล์นั้นทั้งไฟล์ในภาพที่ใหญ่กว่าด้วยวลีรหัสผ่านที่สอง แต่ละชั้นจะคงเดิมทุกไบต์ เพราะถูกส่งต่อเป็นข้อมูลที่ปกป้องไว้ แทนการแก้ไขพิกเซล

การเปิดภาพที่มีข้อมูลซ่อนอยู่แล้วจะทำลายข้อมูลหรือไม่?

ไม่ การโหลดไฟล์เป็นเพียงการอ่านไบต์ พาหะ JPEG เข้าถึงสัมประสิทธิ์ DCT ที่ผ่านควอนไทเซชันโดยตรง โดยไม่มีการแปลงผกผันหรือควอนไทเซชันใหม่ ส่วนพาหะแบบพิกเซลถอดรหัสโดยไม่สูญเสียข้อมูล ข้อมูลที่ซ่อนจึงไม่เปลี่ยน JPEG อาจถูกบันทึกด้วยขนาดไฟล์ต่างออกไปเล็กน้อยเพราะเขียนการเข้ารหัสเอนโทรปีใหม่ แต่ไม่ส่งผลต่อเพย์โหลด คุณจึงเปิดไฟล์ที่ผู้อื่นเตรียมไว้และเปิดเผยข้อมูลภายในได้อย่างปลอดภัย

ImageSteg ช่วยปกป้องลิขสิทธิ์ของฉันได้หรือไม่?

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

ซ่อนข้อความที่ฉันเขินเกินกว่าจะพูดต่อหน้าได้หรือไม่?

ได้แน่นอน ซ่อนข้อความอย่าง "ฉันรักคุณ" หรือสิ่งที่พูดต่อหน้าได้ยากไว้ในภาพธรรมดาจากชีวิตประจำวัน แล้วตั้งวลีรหัสผ่านเป็นวันเกิดของผู้รับ ส่งภาพให้เขาและขอให้เปิดบน ImageSteg (หรือไปที่ 73hi.com/image-steg.html) เพื่อปลดล็อก เฉพาะคนที่รู้วลีรหัสผ่านเท่านั้นจึงเปิดอ่านข้อความได้ คุณจึงบอกความในใจโดยไม่ต้องเขินกับการพูดออกมาดังๆ