# Hash Function vs Compression Algorithm

**URL:** <https://discuss.hashpire.io/t/hash-function-vs-compression-algorithm/378>\
**Category:** Content Board\
**Tags:** beginner, article\
**Created:** [August 25, 2022, 6:47am UTC](https://discuss.hashpire.io/t/hash-function-vs-compression-algorithm/378 "2022-08-25T06:47:05Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![Namtan](https://discuss.hashpire.io/user_avatar/discuss.hashpire.io/namtan/32/23_2.png) [@Namtan](https://discuss.hashpire.io/u/Namtan)\
**Post date:** [August 25, 2022, 6:47am UTC](https://discuss.hashpire.io/t/hash-function-vs-compression-algorithm/378/1 "2022-08-25T06:47:05Z")

</div>

# Planning

## Text

### ชื่อหัวข้อที่จะนำเสนอ

- Hash Function vs Compression Algorithm

### โครงสร้างของเนื้อหา

1. จำนวนหัวข้อทั้งหมดที่จะนำเสนอ
  - 2 หัวข้อ

2. แต่ละหัวข้อจะนำเสนออะไร
  - หัวข้อที่ 1 : เกริ่นนำ
  - หัวข้อที่ 2 : อธิบายความแตกต่างระหว่าง Hash Function และ Compression Algorithm  
- เปรียบเทียบในด้านการนำไปใช้งาน  
- เปรียบเทียบในด้านคุณสมบัติเฉพาะ
  - Reference : อ้างอิงจากที่เรียนกันภายใน Thursday Community Calls : [https://youtu.be/DmUE-pRyt6s](https://youtu.be/DmUE-pRyt6s)

## Graphic

### เสนอไอเดียสำหรับออกแบบกราฟฟิค

### รูปแบบของกราฟฟิคที่จะนำเสนอ

### โครงสร้างของกราฟฟิค

1. จำนวน Page ที่จะนำเสนอ
  - …รูป

2. แต่ละ Page เป็นรูปแบบอย่างไร
  - รูปที่ 1 :
  - รูปที่ 2 :
  - รูปที่ 3 :

คำถามที่รบกวนให้ Reviewer ช่วยตอบค่ะ

#### 1. ต้องการรู้ประเด็นไหนเพิ่มเติมไหม เพราะอะไร

#### 2. คิดว่าเรียงลำดับการนำเสนอได้ดีรึยัง ถ้าไม่ดี มีไอเดียอย่างไร

#### 3. มีประเด็นไหนควรตัดทิ้งไหม เพราะอะไร

# Content

 ![hash-function-vs-compression](https://discuss.hashpire.io/uploads/default/original/2X/0/0adfd246448e16807c92a742234ed3ff62f37b9b.png)

จากบทความที่ผ่านมาเราได้มีการพูดถึง Hash Function กับ Compression Algorithm กันไป หลาย ๆ คนจะเข้าใจว่าทั้ง 2 ขั้นตอนวิธีนี้มีความคล้ายกันในเรื่องของการเปลี่ยนแปลงขนาดข้อมูลหรืออาจจะคิดว่าทั้ง 2 ขั้นตอนวิธีนี้เหมือนกันไปเลยก็ได้ ดังนั้นในบทความนี้เราจะเปรียบเทียบให้เห็นถึงความแตกต่างของทั้ง 2 ขั้นตอนวิธี ในแง่มุมของคุณสมบัติเฉพาะ และการนำไปใช้งาน

Compression Algorithm เป็นขั้นตอนวิธีการบีบอัดข้อมูลให้มีขนาดเล็กลง โดยที่เรายังสามารถทำให้กลับมาเป็นเหมือนเดิมได้ มีจุดประสงค์เพื่อลดพื้นที่ในการจัดเก็บข้อมูลหรือทำให้การถ่ายโอนข้อมูลไปยังคอมพิวเตอร์เครื่องอื่นทำได้รวดเร็วขึ้น นอกจากนั้นตัว Compression ยังสามารถแบ่งได้เป็น 2 ประเภท คือ Lossless Compression เป็นการบีบอัดข้อมูลที่เมื่อขยายข้อมูลกลับมา จะได้ข้อมูลที่มีความสมบูรณ์เหมือนต้นฉบับ ส่วนอีกแบบก็คือ Lossy Compression เป็นการบีบอัดข้อมูลที่มีการสูญเสียข้อมูลบางอย่างออกไป เพื่อให้ได้ขนาดที่เล็กมาก ๆ เมื่อขยายข้อมูลกลับมา ข้อมูลที่ได้จะไม่เหมือนกับต้นฉบับ เช่น รูปภาพที่อาจจะมีความคมชัดน้อยลง  
ในขณะที่ Hash Function เป็นขั้นตอนวิธีการแปลงข้อมูลที่ไม่สามารถทำให้กลับไปเป็นรูปแบบเดิมได้อีก มีจุดประสงค์ในการใช้งานหลากหลายรูปแบบ เช่น เพื่อตรวจสอบความสมบูรณ์ของข้อมูลโดยตรวจจับการเปลี่ยนแปลงแก้ไขข้อมูล เป็นต้น และที่สำคัญคือ ขนาดของข้อมูลที่ได้จาก Hash Function จะมีขนาดคงที่ตามขั้นตอนวิธีที่เราเลือกใช้ ไม่ว่าข้อมูลต้นฉบับจะมีขนาดใหญ่หรือเล็กเท่าใด เช่น SHA-256 เมื่อข้อมูลต้นฉบับผ่านการ Hash แล้วผลลัพธ์ที่ได้จะมีขนาด 256 bit เท่านั้น

# Reference

[![](https://discuss.hashpire.io/uploads/default/original/1X/437d077c438a1c40597952f99dfb9e7d7cfcc1b0.jpeg "Thursday Community Calls : ทำความเข้าใจ Hash Function และการใช้งาน") ](https://www.youtube.com/watch?v=DmUE-pRyt6s)

---

<div class="post-metadata">

**Author:** ![Namtan](https://discuss.hashpire.io/user_avatar/discuss.hashpire.io/namtan/32/23_2.png) [@Namtan](https://discuss.hashpire.io/u/Namtan)\
**Post date:** [August 25, 2022, 8:26am UTC](https://discuss.hashpire.io/t/hash-function-vs-compression-algorithm/378/2 "2022-08-25T08:26:42Z")

</div>



---

<div class="post-metadata">

**Author:** ![supanut](https://discuss.hashpire.io/user_avatar/discuss.hashpire.io/supanut/32/22_2.png) [@supanut](https://discuss.hashpire.io/u/supanut)\
**Post date:** [August 26, 2022, 9:05am UTC](https://discuss.hashpire.io/t/hash-function-vs-compression-algorithm/378/3 "2022-08-26T09:05:56Z")

</div>

คำถามที่รบกวนให้ Reviewer ช่วยตอบค่ะ

1. @Namtan ควรอธิบายให้ชัดเจนกว่านี้ครับว่าไอเดียที่จะนำเสนอในแต่ละหัวข้อ ภาพในหัวเราเป็นยังไงเล่าหน่อยๆ
2. 
3.

---

<div class="post-metadata">

**Author:** ![Namtan](https://discuss.hashpire.io/user_avatar/discuss.hashpire.io/namtan/32/23_2.png) [@Namtan](https://discuss.hashpire.io/u/Namtan)\
**Post date:** [August 26, 2022, 9:58am UTC](https://discuss.hashpire.io/t/hash-function-vs-compression-algorithm/378/4 "2022-08-26T09:58:47Z")

</div>



---

<div class="post-metadata">

**Author:** ![Namtan](https://discuss.hashpire.io/user_avatar/discuss.hashpire.io/namtan/32/23_2.png) [@Namtan](https://discuss.hashpire.io/u/Namtan)\
**Post date:** [August 31, 2022, 4:57am UTC](https://discuss.hashpire.io/t/hash-function-vs-compression-algorithm/378/5 "2022-08-31T04:57:17Z")

</div>



---

<div class="post-metadata">

**Author:** ![supanut](https://discuss.hashpire.io/user_avatar/discuss.hashpire.io/supanut/32/22_2.png) [@supanut](https://discuss.hashpire.io/u/supanut)\
**Post date:** [September 7, 2022, 4:47am UTC](https://discuss.hashpire.io/t/hash-function-vs-compression-algorithm/378/6 "2022-09-07T04:47:02Z")

</div>

@Namtan มันยังไม่ถูกต้อง 100% ครับผม

1. สิ่งแรกเลยบทความเชิงเปรียบเทียบ (xxx VS yyy) เราจะต้องตั้งเป้าหมายก่อนว่าเราจะเปรียบเทียบในมุมมองใดบ้าง? เช่น  
– เปรียบเทียบเรื่องการนำไปใช้งาน : Hash Function ใช้เพื่อเข้ารหัสข้อมูลทางเดียวย้อนกลับเป็นข้อมูลต้นฉบับไม่ได้ ปัจจุบันมีการนำไปประยุกต์ใช้กับอะไรบ้าง บลาๆๆๆ (เช่นสร้าง key?) ส่วน Compression ด้วยความที่มันสามารถบีบอัดข้อมูลให้เล็กลง และ แตกไฟล์กลับมาเป็นข้อมูลต้นฉบับดังเดิม เลยนิยมใช้ในการบีบอัดไฟล์เพื่อใช้ในการลดพื้นที่จัดเก็บ หรือ ใช้ในการลดขนาดไฟล์เมื่อส่งข้อมูลผ่านระบบเครือข่าย (บีบไฟล์ก่อนส่งเมลไรงี้)  
– เปรียบเทียบเรื่องคุณสมบัติเฉพาะ : Hash Function จะแปลงขนาดข้อมูลใดๆ จากต้นฉบับ ไม่ว่าจะเล็กหรือใหญ่เท่าใดก็ตาม ให้เป็นขนาดคงที่ตามอัลกอริทึมที่เลือกใช้ เช่น sha256 หลังเข้ารหัสผลที่ได้จะมีขนาด 256bit ไม่ว่า input จะมีขนาด 1bit หรือ 99999999bit ก็ตาม …ส่วน Compression เป้าหมายคือการลดขนาดไฟล์ต้นฉบับลงและขนาดที่ลดลงนั้นไม่คงที่ด้วย

เราไม่จำเป็นต้องเปรียบเทียบหลายประเดนเพียงแค่ประเดนเดียวก็ได้ แต่ต้องเขียนใน outline ให้ชัดเจนว่าเราอยากเปรียบเทียบในประเดนใดบ้างครับ

1. ความถูกต้องของข้อมูล

> [@Namtan](#):
>
> ในขณะที่ Hash Function เมื่อข้อมูลถูกทำให้มีขนาดเล็กลงแล้วจะไม่สามารถทำให้กลับไปเป็นรูปแบบเดิมได้อีก

– จะเห็นได้ว่า Hash Function มันไม่ได้ทำให้ขนาดของข้อมูลเล็กลง แต่มันทำให้ขนาดเป็นไปตามอัลกอริทึมที่ใช้ ในมุมมองที่น้องอธิบายมามันก็ถูกถ้าข้อมูลต้นฉบับเป็นข้อมูลขนาดใหญ่เมื่อผ่านการ hash แน่นอน size มันจะเล็กลง แต่ถ้าข้อมูลต้นฉบับเป็นขนาดเล็กหละผลที่ได้คือขนาดมันก็มากขึ้น ตรงนี้แหละที่เราสื่อสารผิด  
– ใจความสำคัญของ Hash คือการแปลงข้อมูลใดๆ ให้เป็นขนาดคงที่ตามอัลกอริทึมที่เลือก เช่น sha512 จะได้ output hash ขนาด 521bit

@anakornk ช่วยเสริมหน่อยครับ

---

<div class="post-metadata">

**Author:** ![supanut](https://discuss.hashpire.io/user_avatar/discuss.hashpire.io/supanut/32/22_2.png) [@supanut](https://discuss.hashpire.io/u/supanut)\
**Post date:** [September 7, 2022, 4:47am UTC](https://discuss.hashpire.io/t/hash-function-vs-compression-algorithm/378/7 "2022-09-07T04:47:11Z")

</div>



---

<div class="post-metadata">

**Author:** ![supanut](https://discuss.hashpire.io/user_avatar/discuss.hashpire.io/supanut/32/22_2.png) [@supanut](https://discuss.hashpire.io/u/supanut)\
**Post date:** [October 17, 2022, 10:49am UTC](https://discuss.hashpire.io/t/hash-function-vs-compression-algorithm/378/8 "2022-10-17T10:49:06Z")

</div>

- จริงๆ มันมีปัจจัยอื่นด้วยนะครับ เช่นตอนเราบีบอัดเราสามารถเลือกระดับของการบีบอัดได้ว่าจะบีบอัดแบบระดับสูงเลยไหม ไฟล์ก็จะเล็กแต่ใช้เวลาบีบอัดนาน และขนาดในการบีบอัดขึ้นอยู่กับความเร็ว CPU ด้วยปะอันนี้ไม่มั่นใจ เคยพบว่ากดบีบอัดระดับเดียวกันในสองเครื่องแต่ได้ไฟล์ผลลัพธ์ขนาดไม่เท่ากัน อันนี้ฝากถาม @anakornk เพิ่มครับ

> [@Namtan](#):
>
> ขึ้นอยู่กับขนาดของไฟล์ข้อมูลต้นฉบับของเรา

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

> [@Namtan](#):
>
> ในขณะที่ Hash Function เป็นขั้นตอนวิธีการแปลงขนาดไฟล์ข้อมูลที่เมื่อเราทำการแปลงไฟล์ข้อมูลแล้วจะไม่สามารถทำให้กลับไปเป็นรูปแบบเดิมได้อีก

- อื่นๆ อ่านแล้วโอเคแล้วครับ ถ้าแก้ไขเสร็จแล้วเรียกพี่ไปตรวจอีกทีนะครับ

---

<div class="post-metadata">

**Author:** ![Namtan](https://discuss.hashpire.io/user_avatar/discuss.hashpire.io/namtan/32/23_2.png) [@Namtan](https://discuss.hashpire.io/u/Namtan)\
**Post date:** [October 18, 2022, 2:23am UTC](https://discuss.hashpire.io/t/hash-function-vs-compression-algorithm/378/9 "2022-10-18T02:23:56Z")

</div>



---

<div class="post-metadata">

**Author:** ![supanut](https://discuss.hashpire.io/user_avatar/discuss.hashpire.io/supanut/32/22_2.png) [@supanut](https://discuss.hashpire.io/u/supanut)\
**Post date:** [October 27, 2022, 10:45am UTC](https://discuss.hashpire.io/t/hash-function-vs-compression-algorithm/378/10 "2022-10-27T10:45:20Z")

</div>

@Namtan

> [@Namtan](#):
>
> และที่สำคัญคือขนาดไฟล์ข้อมูลที่ผ่านการบีบอัดแล้วจะไม่คงที่ ขึ้นอยู่กับขนาดของไฟล์ข้อมูลต้นฉบับ ระดับในการบีดอัดไฟล์ที่เราเลือกใช้

- เมื่อวานคุยกับ @anakornk ได้ข้อสรุปกันว่าเราไม่ต้องอธิบายลงลึกมากเกินไป เพราะถ้าลึกไปมันจะรัดตัวเราเองหากข้อมูลไม่แน่น จะเสี่ยงและอันตรายมาก + บทความ

- ดังนั้นจากประโยคข้างต้นเราสามารถตัดส่วนนี้ทิ้งได้เลย “ขึ้นอยู่กับขนาดของไฟล์ข้อมูลต้นฉบับ ระดับในการบีดอัดไฟล์ที่เราเลือกใช้”

- ถ้าแก้ไขตามข้างต้นแล้วถือว่าผ่านแล้วครับเริ่มงานกราฟฟิกได้เลย

---

<div class="post-metadata">

**Author:** ![supanut](https://discuss.hashpire.io/user_avatar/discuss.hashpire.io/supanut/32/22_2.png) [@supanut](https://discuss.hashpire.io/u/supanut)\
**Post date:** [November 8, 2022, 6:24am UTC](https://discuss.hashpire.io/t/hash-function-vs-compression-algorithm/378/11 "2022-11-08T06:24:02Z")

</div>

@Pantitas

 ![Screenshot 2565-11-08 at 13.20.52](https://discuss.hashpire.io/uploads/default/original/1X/a4492d79d6e3c419f66e639e772a367ee2ec54cc.jpeg)

จากภาพข้างต้นมีประเดนที่อ่านแล้วอาจจะทำให้เข้าใจสิ่งที่เราต้องการสื่อสารผิด ตอน compress file จริงๆ แล้วถ้าเรา compress แล้วมันขนานไม่ลดลงเราจะทำไปเพื่ออะไร ดังนั้นไม่ว่าจะเป็นขั้นตอนแบบ lossy หรือ lossless ขนาดข้อมูลก็ควรลดลงนะครับ ขึ้นอยู่กับว่าลดเยอะแค่ไหนมากกว่า (lossy ลดเยอะกว่าแน่นอน)

@anakornk มีอะไรเสริมไหมครับ

---

<div class="post-metadata">

**Author:** ![anakornk](https://discuss.hashpire.io/user_avatar/discuss.hashpire.io/anakornk/32/3_2.png) [@anakornk](https://discuss.hashpire.io/u/anakornk)\
**Post date:** [November 9, 2022, 8:24am UTC](https://discuss.hashpire.io/t/hash-function-vs-compression-algorithm/378/12 "2022-11-09T08:24:42Z")

</div>

![image](https://discuss.hashpire.io/uploads/default/original/1X/11f6d39a1ec87bf91a6a92a93bb9714d64cefa9d.jpeg)

---

<div class="post-metadata">

**Author:** ![anakornk](https://discuss.hashpire.io/user_avatar/discuss.hashpire.io/anakornk/32/3_2.png) [@anakornk](https://discuss.hashpire.io/u/anakornk)\
**Post date:** [November 9, 2022, 8:26am UTC](https://discuss.hashpire.io/t/hash-function-vs-compression-algorithm/378/13 "2022-11-09T08:26:59Z")

</div>

![image](https://discuss.hashpire.io/uploads/default/original/1X/b7983c4f3c4a2d3835f19d030ec6bc33bbc9b42f.png)

---

<div class="post-metadata">

**Author:** ![supanut](https://discuss.hashpire.io/user_avatar/discuss.hashpire.io/supanut/32/22_2.png) [@supanut](https://discuss.hashpire.io/u/supanut)\
**Post date:** [November 15, 2022, 8:54am UTC](https://discuss.hashpire.io/t/hash-function-vs-compression-algorithm/378/14 "2022-11-15T08:54:09Z")

</div>

@Pantitas

- ชอบภาพที่นำเสนอนะครับ ในส่วนของ compression

อยากให้แก้ไขดังนี้

- ไฟล์ข้อมูล → ไปไล่ลบคำว่าไฟล์ออกครับ ใช้แค่ข้อมูลพอ
- บีบอัดไฟล์ → บีบอัดข้อมูล
- แตกไฟล์ → ถอนการบีบอัดข้อมูล (ใช้คำว่าแตกข้อมูลดูแปลกๆ แต่คนไทยชินกับคำว่าแตกไฟล์ แต่ถ้าหากหาคำที่ดีกว่าได้ลองเสนอมาได้เลยครับ)
