雖然這篇วิธีเก็บ กุ้ง ลวก鄉民發文沒有被收入到精華區:在วิธีเก็บ กุ้ง ลวก這個話題中,我們另外找到其它相關的精選爆讚文章
在 วิธีเก็บ產品中有11篇Facebook貼文,粉絲數超過0的網紅,也在其Facebook貼文中提到, เก็บกระเทียมป่าต้องระวัง เจอค่าปรับเหยียบแสน!! "พ่อบ้านคะ ขอทราบข้อมูลนิดนึงค่ะ พอดีจะไปเก็บกระเทียมป่า แล้วโดนแฟนเตือนว่าอย่าไปเก็บเยอะ เลยอยากทราบว...
同時也有63部Youtube影片,追蹤數超過11萬的網紅PRAEW,也在其Youtube影片中提到,มาค่ะทุกคน วันนี้แพรวจะมาทำความรู้จักเพื่อนคู่ใจ คู่เต้าแม่ๆ คนใหม่คนนี้กัน ✨?? อยากบอกว่ารีวิวไป อยากปั๊มไปด้วยเลย อดใจรอไม่ไหว 555 ก็ฟังค์ชั่นคุณเค้...
「วิธีเก็บ」的推薦目錄
- 關於วิธีเก็บ 在 Ngek Kanlaya Lerdkasemsub Instagram 的最佳貼文
- 關於วิธีเก็บ 在 Daddy A. พศิน เรืองวุฒิ Instagram 的最讚貼文
- 關於วิธีเก็บ 在 เจ๊แหม่ม Instagram 的最佳貼文
- 關於วิธีเก็บ 在 Facebook 的精選貼文
- 關於วิธีเก็บ 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的精選貼文
- 關於วิธีเก็บ 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最讚貼文
- 關於วิธีเก็บ 在 PRAEW Youtube 的最佳貼文
- 關於วิธีเก็บ 在 Shorty Bluejova Youtube 的精選貼文
- 關於วิธีเก็บ 在 CoolRin CH Youtube 的最佳貼文
วิธีเก็บ 在 Ngek Kanlaya Lerdkasemsub Instagram 的最佳貼文
2020-05-02 11:58:33
คือดี ไส้ไม่หวานหอมอร่อย หมดนี้สั่งใหม่😍 ขนมเปี๊ยะ home made สดใหม่ทุกวัน รวมทุกไส้กล่องละ 20 ชิ้น 220 บาท ไส้ถั่วเหลืองไข่เค็มล้วน 250 บาท 1.ถั่วเ...
วิธีเก็บ 在 Daddy A. พศิน เรืองวุฒิ Instagram 的最讚貼文
2020-05-09 19:01:28
วิธีเก็บ ค้อนธอร์ แบบเหนือชั้น #legochaophaya #avengers...
วิธีเก็บ 在 เจ๊แหม่ม Instagram 的最佳貼文
2020-05-12 07:50:15
อันนี้เริ่ดมากกกกก และยิ่งเกมนี้ด้วยนะ หาได้ก็เทพแล้ว เอามาเล่น เก๋ๆ กับเครื่อง แฟมิคอม สีขาวแดง ที่ยังมีเก็บไว้หลายเครื่องอยู่นะ แต่ตลับเกมดีๆ น...
-
วิธีเก็บ 在 PRAEW Youtube 的最佳貼文
2021-02-23 18:00:19มาค่ะทุกคน วันนี้แพรวจะมาทำความรู้จักเพื่อนคู่ใจ คู่เต้าแม่ๆ คนใหม่คนนี้กัน ✨??
อยากบอกว่ารีวิวไป อยากปั๊มไปด้วยเลย อดใจรอไม่ไหว 555 ก็ฟังค์ชั่นคุณเค้าเริศจริงๆ
สำหรับแม่ๆที่สนใจ?
สามารถคลิ๊กที่ลิงค์ด้านล่างได้เลยนะคะ ??
Line : @attitudemom
IG: attitudemom_thailand
Web: https://attitudemombreastpump.com/ Facebook : https://www.facebook.com/attitudemom
#Attitudemom #เครื่องปั๊มนม #GalaxyII -
วิธีเก็บ 在 Shorty Bluejova Youtube 的精選貼文
2020-12-29 15:00:35Genshin Impact เกมแนวแอคชั่น Open World กราฟิกสไตล์อนิเมะ เปิดให้เล่นฟรีแล้วในมือถือ, PC, PS4 !!
☑ รายละเอียด https://appair.biz/Game/1804
☑ PC https://genshin.mihoyo.com
☑ iOS https://apps.apple.com/app/id1517783697
☑ Android https://play.google.com/store/apps/details?id=com.miHoYo.GenshinImpact
☑ PS4 https://www.playstation.com/en-th/games/genshin-impact-ps4/
Version 1.2 https://youtu.be/QIwY5424UhU
☑ Patch Note https://genshin.mihoyo.com/th/news/detail/7636
☑ จุดไอเทม https://genshin-impact-map.appsample.com/
☑ รวมคลิปทั้งหมด https://www.youtube.com/playlist?list=PLi3Sn2HXLtjDc4kVbn7AyPFOqnbC2oYjo
ข้อมูลอื่นๆ ของเกมนี้
☑ Spec ขั้นต่ำ https://genshin.mihoyo.com/en/news/detail/5284
☑ ใช้เนื้อที่มากกว่า 8GB (Mobile) 30GB (PC&PS4)
☑ ต้องใช้เน็ตขณะเล่น (ออนไลน์)
☑ เล่นกับเพื่อนได้ 4 คน (เปิดตอน Level 16)
☑ เล่น Cross Platfrom ได้หมด
☑ ใช้ไอดีเดียวกันได้เฉพาะ PC และ Mobile เท่านั้น
☑ เติมเงินไม่ใช้บัตรเครดิต https://bit.ly/36raxuM
ช่องทางการสนับสนุน
☑ YouTube Member https://www.youtube.com/channel/UCbPXc445U0-9NVYaf2VZkBw/join
☑ PayPal https://paypal.me/shortybluejova
☑ Steamlab https://streamlabs.com/nitinaiphaisanpayak
ข้อมูลอื่นๆ
☑ ดูเกมมือถืออื่นๆ ได้ที่ https://appair.biz
☑ มือถือที่ใช้ปัจจุบัน iPhone 12 PRO MAX, iPad Pro 11" 2020, Note 20 Ultra 5G
☑ PC ที่ใช้ปัจจุบัน https://notebookspec.com/pc/8154479
☑ PC สำหรับสตรีม https://notebookspec.com/pc/7768833
Social Media
☑ Official Fanpage https://www.fb.com/shortybluejovaofficial/
☑ กลุ่มคนแอบเล่นเกม https://www.fb.com/groups/gamerlab/
☑ Instagram https://www.instagram.com/shortybluejova
☑ My Team Fanpage https://www.fb.com/nngamingtv
#shortybluejova -
วิธีเก็บ 在 CoolRin CH Youtube 的最佳貼文
2019-06-23 20:45:54ตอนนี้มีกลุ่มคนเล่น Team Fight Tatics แล้วนะ อยากเป็นเทพเกม LOL Auto Chess เข้ามาเลย https://bit.ly/31M9c09
► ติดตาม facebook FANPAGE : https://goo.gl/RSe5ul
Community หาเพื่อนเล่น TFT : https://bit.ly/31M9c09
#TFT #TeamFightTactics #LOLAutoChess
วิธีเก็บ 在 Facebook 的精選貼文
เก็บกระเทียมป่าต้องระวัง เจอค่าปรับเหยียบแสน!!
"พ่อบ้านคะ ขอทราบข้อมูลนิดนึงค่ะ พอดีจะไปเก็บกระเทียมป่า แล้วโดนแฟนเตือนว่าอย่าไปเก็บเยอะ เลยอยากทราบว่ามันมีข้อกำหนดอะไรยังไงบ้างคะ?"
ได้เลยครับพ่อบ้านจัดให้!! ในช่วงเดือนเม.ย - พ.ค ของทุกๆ ปีในป่าที่เยอรมันจะมีพืชชนิดนึงที่มีชื่อไทยว่ากระเทียมป่า หรือชื่อภาษาเยอรมันว่า Bärlauch โดยเจ้าพืชชนิดนี้ถือว่าเป็นพืชที่ได้รับความนิยมจากคนไทยมากๆ ชนิดนึงเพราะมันสามารถ
"นำไปทำขนมกุยช่าย" ได้อย่างอร่อยเลยทีเดียว และยังมีอีกหลากหลายเมนูเลย ซึ่งถือว่าเป็นอะไรที่ทำให้หายคิดถึงอาหารไทยได้พอดูเลย
แต่รู้มั้ยครับว่าที่เยอรมันเองก็มีกฎในการเก็บกระเทียมป่าอยู่เช่นกันซึ่งถ้าคุณฝ่าฝืนนั้นอาจจะโดนโทษปรับเหยียบแสนบาทเลยทีเดียว
วิธีเก็บ:
- การเก็บกระเทียมป่านั้นควรจะตัดด้วยมีดที่คมกริบและไม่ควรใช้มือเด็ด ควรที่จะตัดหนึ่งใบ ต่อหนึ่งต้นเท่านั้น และต้องตัดให้ใกล้โคนต้นมากที่สุด เพื่อให้พืชยังสามารถฟื้นคืนตัวเองได้ตามธรรมชาติ
- การเก็บกระเทียมป่านั้น "ไม่ควรตัดดอก" ของมันออก เพราะการที่เรารักษาดอกของมันไว้ก็จะทำให้มันสามารถเจริญเติบโตในปีถัดๆ ไปได้อีก
ข้อห้ามที่สำคัญ
- การเก็บกระเทียมป่านั้นไม่สามารถเก็บปริมาณมาก หรือนำไปจำหน่าย ได้จนกว่าจะได้รับอนุญาตจากทางการอย่างเป็นลายลักษณ์อักษร
- ห้ามไปเก็บกระเทียมป่าใกล้ๆ หรือในเขต Naturschutzgebiet เพราะคุณอาจจะเผลอไปทำลายธรรมชาติได้
- ปริมาณที่เหมาะสมในการเก็บกระเทียมป่าก็คือ "หนึ่งกำมือ" เท่านั้นนะครับไม่ควรเกินเพราะนอกจากจะเป็นการรักษาธรรมชาติแล้วยังจะทำให้คนถัดไปสามารถมาเก็บได้นั่นเองครับ
สำหรับโทษปรับนั้นจะแตกต่างกันไปในแต่ละรัฐแต่พ่อบ้านขออนุญาตยกตัวอย่างข้อมูลจากของรัฐ Sachsen มาโดยมีโทษปรับสูงถึง 2,500 Euro เลยทีเดียว
ดังนั้นนอกจากค่าปรับที่สูงแล้วพ่อบ้านจึงอยากขอให้ช่วยกันดูแลรักษาธรรมชาติและบริโภคแต่พอดี เพื่อที่เราจะได้มีกระเทียมป่ากินกันทุกๆ ปีนะครับ
ขอบคุณมากครับ
#พ่อบ้านเยอรมัน #เยอรมัน #เยอรมนี #Germany #German
ที่มาของข้อมูล: Naturschutzbund, Wikipedia
https://www.nabu.de/tiere-und-pflanzen/pflanzen/pflanzenportraets/wildpflanzen/03392.html
https://www.nabu.de/umwelt-und-ressourcen/oekologisch-leben/essen-und-trinken/natur/02266.html
https://www.nabu.de/umwelt-und-ressourcen/oekologisch-leben/essen-und-trinken/natur/27837.html
https://de.wikipedia.org/wiki/B%C3%A4rlauch#Rechtliche_Situation_(Deutschland)
วิธีเก็บ 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的精選貼文
#โปรแกรมเมอร์ เก็บ Password แบบไหน? ถึงจะปลอดภัย
ในทางโปรแกรมมิ่งการเก็บ password ลงฐานข้อมูล (Database) ไม่ได้เก็บกันตรงโต้งๆ ไม่งั้นใครมาเห็นก็อ่านได้หมด ซวยกันพอดี
:
วิธีเก็บ password ที่ปลอดภัย
จะนำมาผ่าน Hash function เสียก่อน เช่น
hash("1234") ได้คำตอบออกมาเป็น
a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9
:
หน้าที่ hash function จะแปลงพาสเวิร์ด "1234"
เป็นข้อความลับอะไรซักอย่างที่อ่านไม่ออก
ทั้งนี้ขนาดข้อความที่ได้จาก hash function จะคงที่ (fixed size)
:
สำหรับค่าที่ได้จาก Hash function มีหลายชื่อให้เรียกขาน เช่น
hash values, hash codes, digests
แต่ผมจะเรียกสั้นๆ ว่า "ค่า hash" แล้วกัน
:
ส่วนฟังก์ชั่นที่ใช้เป็น Hash function ในโลกนี้มีหลายตัว เช่น
MD5, SHA256, SHA512, RipeMD, WHIRLPOOL เป็นต้น
:
+++++
👉 ตัดกลับมาตอนนี้เราเก็บ password ในฐานข้อมูลเป็นค่า hash แล้วเวลายูสเซอร์ล็อกอินกรอก user name ป้อน password เข้ามาในระบบ
.
ก็จะมีสเตปการตรวจสอบ password ประมาณเนี่ย
.
1) ระบบจะเอา password มาเข้า hash funcion ได้เป็นค่า hash
2) เอาค่า hash ในข้อ 1 ไปเทียบดูในฐานข้อมูล (ของยูสเซอร์นั้น)
3) ถ้าค่าตรงกันแสดงว่ายูสเซอร์ป้อน password ได้ถูกต้อง แสดงว่าล็อกอินสำเร็จ
:
👉 เหตุผลที่ hash function มัน ok เพราะอาศัยคุณสมบัติดังนี้
1) hash function มันทำงานทางเดียว (one-way)
หมายถึงเราไม่สามารถนำค่า hash มาย้อนหาข้อความต้นฉบับได้เลย
.
ในกรณีนี้ต่อให้ hacker เห็นค่า hash เขาจะไม่สามารถถอดกลับ
มาเป็น "1234" ได้เลย
.
ด้วยเหตุนี้ค่า hash บางทีเขาจึงเรียกว่า "message digest" หมายถึง "ข้อความที่ย่อยสลาย" ...จนไม่รู้ต้นฉบับหน้าตาเป็นแบบไหนแล้ว
:
2) ถ้าข้อความต้นฉบับหน้าตาเดียวกันเป๊ะทุกกะเบียดนิ้ว
เวลาผ่าน hash function จะได้ค่า hash เหมือนเดิม
พอเปลี่ยนข้อความต้นฉบับนิดหนึ่ง
แม่เจ้า ....ค่า hash เปลี่ยนไปราวฟ้ากับเหว ต่างกันมาก
.
จึงเป็นไปไม่ได้ที่เราจะเก็บ password ต่างกัน
แล้วได้ค่า hash เดียวกัน ...เป็นไปไม่ด้ายยยย
(ไม่มีการชนกันหรือ crash)
:
+++++
👉 เพราะข้อดีของ hash function ที่ยกมา
เวลาเก็บ password ลงฐานข้อมูล จึงควรเปลี่ยนไปใช้ค่า hash แทน
.
รับรองได้ว่าต่อให้ hacker เจาะระบบเข้ามาได้ (กรณีเลวร้ายสุดๆ แหละ)
...แล้วอ่าน password ที่ถูกเข้ารหัส ก็จะอ่านไม่รู้เรื่อง
...ต่อให้พยายามถอดกลับมาเป็นข้อความต้นฉบับ ก็ทำไม่ได้นะจ๊ะ
:
ฟังเหมือนปลอดภัยนะ ถ้าเก็บรักษา password ด้วยวิธี hash function แต่ทว่า hacker ก็ยังสามารถใช้วิธีเดาสุ่มหา password ได้อยู่ดี ...ไม่ยากด้วย ขอบอกเลย
:
👉 ยกตัวอย่างง่ายๆ วิธี hack พาสเวิร์ดเบสิกสุดๆ
- ให้คิดว่าตอนนี้ hacker เจาะระบบเข้าไปอ่าน password ในฐานข้อมูลได้แล้ว
- จากนั้น hacker จะมองหาค่า hash (ของ password) ในฐานข้อมูลที่ซ้ำๆ กันอยู่
- นั่นหมายถึงเจอยูสเซอร์ใช้ password ซ้ำกัน จึงเจอค่า hash ซ้ำกันนั่นเอง
- แล้วการที่ยูสเซอร์ใช้ซ้ำ แสดงว่ามันเป็น password ง่ายนะซิ เช่น
123456, 1111, Baseball, Qwerty, password
.
ดังนั้น hacker ก็แค่ค้นหาในตาราง
ตารางที่ว่าจะเก็บ password พร้อมค่า hash
(เก็บพวก password ที่คนใช้กันเยอะ)
ซึ่ง hacker ก็จะค้นหาหาในตารางดังกล่าว
แบบไล่สุ่มไปเรื่อยๆ เดี่ยวก็เจอไม่ยาก
:
++++
👉 ก็เพราะเหตุนี้จึงต้องหาวิธีแก้ทาง hacker
ให้เดาสุ่มหา password มันทวีความยุ่งยากไปอีก
(จุดประสงค์ป้องเทคนิคพวกเดาสุ่ม เช่น
dictionary attacks, Brute Force Attacks, Lookup Tables,
Reverse Lookup Tables, Rainbow Tables)
:
👉 สำหรับวิธีการป้องกัน ก็จะทำประมาณเนี่ย
ก่อนที่จะเก็บ password ลงฐานข้อมูล ระบบจะต้องทำเยี่ยงนี้
1) จะนำ password มากบวกกับค่า salt
2) จากนั้นนำค่าที่ได้จากข้อ 1 มาเข้า hash function
แล้วเก็บค่า hash ที่ได้ลงฐานข้อมูล
.
ขออธิบายข้อ 2 เพิ่มเติม
จากเดิมเราเรียกใช้ hash function เช่น
hash("1234")
แต่เราจะเปลี่ยนมาเรียก
hash("1234" + "QxLUF1bgIAdeQX")
hash("1234" + "bv5PehSMfV11Cd")
hash("1234" + "YYLmfY6IehjZMQ")
.
ซึ่ง "QxLUF1bgIAdeQX", "bv5PehSMfV11Cd", "YYLmfY6IehjZMQ" ที่ยกตัวอย่าง
มันก็คือค่า "salt" (ที่แปลว่า "เกลือ")
เป็นค่า radom ที่แจกให้แต่ละยูสเซอร์ ไม่ซ้ำกันเลย
เราจะนำมาบวกกับ password ก่อนเข้า hash function
:
เวลาเก็บ password ในฐานข้อมูล
แต่ละยูสเซอร์จะต้องเก็บทั้งค่า hash กับ salt เอาไว้
.
👉 พอเวลายูสเซอร์ล็อกอินใส่ user name / password
1) ระบบก็เอา password มาบวกกับ salt
(แต่ละยูสเซอร์เก็บค่า salt คนละค่า)
2) นำค่าที่ได้จากข้อ 1 มาเข้า hash funcion
3) นำค่าที่ได้จากข้อ 2 ไปเปรียบเทียบกับ ค่า hash ในฐานข้อมูล
4) ถ้าตรงกันแสดงว่ายูสเซอร์ป้อน password ถูกต้อง แสดงว่าล็อกอินสำเร็จ
..
แต่มีข้อแม้ hash function ที่ควรใช้ได้แก่
Argon2, bcrypt, scrypt ($2y$, $5$, $6$), หรือ PBKDF2
มันถึงจะปลอดภัย ทำให้การเดาสุ่มหา password ทำได้ยากขึ้น
.
ส่วนพวก hash function ที่ทำงานได้รวดเร็ว เช่น
MD5, SHA1, SHA256, SHA512, RipeMD, WHIRLPOOL, SHA3, etc.
เนี่ยห้ามใช้นะครับ
หรืออย่าง crypt (เวอร์ชั่น $1$, $2$, $2x$, $3$) ก็ไม่ห้ามใช้นะครับ
:
+++++
👉 ในแง่การเขียนโปรแกรม
เข้าใจว่าแต่ละภาษาโปรแกรมมิ่ง หรือพวกเฟรมเวิร์ค
เขาคงเตรียมไลบรารี่ หรือเครื่องมือ
เอาไว้ให้ใช้ hash function รวมกับค่า salt อยู่แล้ว
เราสามารถเปิดคู่มือ แล้วทำตามได้เลยครับ
:
++++
👉 ย้ำที่อธิบายทั้งหมดนี้
เป็นการป้องกันการเจาะระบบฝั่งแอพ หรือระบบเท่านั้น
hacker ยังสามารถเดาสุ่มป้อน password
ได้โดยตรงที่หน้าแอพ หรือฝั่งล็อกอินหน้าโปรแกรมได้เลย (Brute Force Attacks)
.
ทางที่ดีระบบต้องเช็กว่าถ้ายูสเซอร์กรอก password ผิดติดต่อกันกี่ครั้ง?
ถึงจะระงับการใช้ user name นี้ชั่วคราว หรือจะแบน IP ที่ล็อกอินเข้ามาไปเลยก็ยังได้
.
ยิ่งถ้าเป็นการล็อกอินผ่านเว็บไซต์
ก็ควรให้เว็บเราใช้โปรโตคอล https ขืนไปใช้ http ธรรมดา
โอกาสเจอ hacker ดักจับ user name/ passwod กลางทางมีสูงมาก
.
เว้นแต่เราจะใช้เทคนิค Digest Access Authentication เข้าช่วย
ทำให้การส่ง user name/password ผ่าน http ธรรมดาได้อย่างปลอดภัย (แต่โค้ดดิ่งก็จะยุ่งยากตาม)
:
+++
😁 สรุป
1) เก็บพาสเวิร์ดตรงๆ โดยไม่เข้ารหัส -> hacker ชอบนักแล
2) เก็บพาสเวิร์ดโดยเข้ารหัสในรูป Hash values -> hacker อ่านไม่ออกก็จริง แต่ไม่ยากที่จะเดา password
3) เก็บพาสเวิร์ดโดยเข้ารหัสในรูป Hash values + salt vaues
-> hacker อ่านไม่ออก ต่อให้ไปเดาสุ่ม ก็จะทำได้ยากขึ้น
จุดประสงค์ข้อ 3 นี้เพื่อป้องกันด้วยเทคนิค ..... dictionary attacks, Brute Force Attacks, Lookup Tables, Reverse Lookup Tables, Rainbow Table
.
สุดท้ายขอจบเรื่อง hash funcion กับ password
ให้รอดพ้นจาก hacker ไว้เพียงเท่านั้น
หวังว่าจะเป็นประโยชน์ต่อทุกท่านนะครับ
.
++++++
เขียนโดย โปรแกรมเมอร์ไทย thai programmer
อ้างอิง
https://crackstation.net/hashing-security.htm
https://en.wikipedia.org/wiki/Hash_function
วิธีเก็บ 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最讚貼文
#โปรแกรมเมอร์ เก็บ Password แบบไหน? ถึงจะปลอดภัย
ในทางโปรแกรมมิ่งการเก็บ password ลงฐานข้อมูล (Database) ไม่ได้เก็บกันตรงโต้งๆ ไม่งั้นใครมาเห็นก็อ่านได้หมด ซวยกันพอดี
:
วิธีเก็บ password ที่ปลอดภัย
จะนำมาผ่าน Hash function เสียก่อน เช่น
hash("1234") ได้คำตอบออกมาเป็น
a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9
:
หน้าที่ hash function จะแปลงพาสเวิร์ด "1234"
เป็นข้อความลับอะไรซักอย่างที่อ่านไม่ออก
ทั้งนี้ขนาดข้อความที่ได้จาก hash function จะคงที่ (fixed size)
:
สำหรับค่าที่ได้จาก Hash function มีหลายชื่อให้เรียกขาน เช่น
hash values, hash codes, digests
แต่ผมจะเรียกสั้นๆ ว่า "ค่า hash" แล้วกัน
:
ส่วนฟังก์ชั่นที่ใช้เป็น Hash function ในโลกนี้มีหลายตัว เช่น
MD5, SHA256, SHA512, RipeMD, WHIRLPOOL เป็นต้น
:
+++++
👉 ตัดกลับมาตอนนี้เราเก็บ password ในฐานข้อมูลเป็นค่า hash แล้วเวลายูสเซอร์ล็อกอินกรอก user name ป้อน password เข้ามาในระบบ
.
ก็จะมีสเตปการตรวจสอบ password ประมาณเนี่ย
.
1) ระบบจะเอา password มาเข้า hash funcion ได้เป็นค่า hash
2) เอาค่า hash ในข้อ 1 ไปเทียบดูในฐานข้อมูล (ของยูสเซอร์นั้น)
3) ถ้าค่าตรงกันแสดงว่ายูสเซอร์ป้อน password ได้ถูกต้อง แสดงว่าล็อกอินสำเร็จ
:
👉 เหตุผลที่ hash function มัน ok เพราะอาศัยคุณสมบัติดังนี้
1) hash function มันทำงานทางเดียว (one-way)
หมายถึงเราไม่สามารถนำค่า hash มาย้อนหาข้อความต้นฉบับได้เลย
.
ในกรณีนี้ต่อให้ hacker เห็นค่า hash เขาจะไม่สามารถถอดกลับ
มาเป็น "1234" ได้เลย
.
ด้วยเหตุนี้ค่า hash บางทีเขาจึงเรียกว่า "message digest" หมายถึง "ข้อความที่ย่อยสลาย" ...จนไม่รู้ต้นฉบับหน้าตาเป็นแบบไหนแล้ว
:
2) ถ้าข้อความต้นฉบับหน้าตาเดียวกันเป๊ะทุกกะเบียดนิ้ว
เวลาผ่าน hash function จะได้ค่า hash เหมือนเดิม
พอเปลี่ยนข้อความต้นฉบับนิดหนึ่ง
แม่เจ้า ....ค่า hash เปลี่ยนไปราวฟ้ากับเหว ต่างกันมาก
.
จึงเป็นไปไม่ได้ที่เราจะเก็บ password ต่างกัน
แล้วได้ค่า hash เดียวกัน ...เป็นไปไม่ด้ายยยย
(ไม่มีการชนกันหรือ crash)
:
+++++
👉 เพราะข้อดีของ hash function ที่ยกมา
เวลาเก็บ password ลงฐานข้อมูล จึงควรเปลี่ยนไปใช้ค่า hash แทน
.
รับรองได้ว่าต่อให้ hacker เจาะระบบเข้ามาได้ (กรณีเลวร้ายสุดๆ แหละ)
...แล้วอ่าน password ที่ถูกเข้ารหัส ก็จะอ่านไม่รู้เรื่อง
...ต่อให้พยายามถอดกลับมาเป็นข้อความต้นฉบับ ก็ทำไม่ได้นะจ๊ะ
:
ฟังเหมือนปลอดภัยนะ ถ้าเก็บรักษา password ด้วยวิธี hash function แต่ทว่า hacker ก็ยังสามารถใช้วิธีเดาสุ่มหา password ได้อยู่ดี ...ไม่ยากด้วย ขอบอกเลย
:
👉 ยกตัวอย่างง่ายๆ วิธี hack พาสเวิร์ดเบสิกสุดๆ
- ให้คิดว่าตอนนี้ hacker เจาะระบบเข้าไปอ่าน password ในฐานข้อมูลได้แล้ว
- จากนั้น hacker จะมองหาค่า hash (ของ password) ในฐานข้อมูลที่ซ้ำๆ กันอยู่
- นั่นหมายถึงเจอยูสเซอร์ใช้ password ซ้ำกัน จึงเจอค่า hash ซ้ำกันนั่นเอง
- แล้วการที่ยูสเซอร์ใช้ซ้ำ แสดงว่ามันเป็น password ง่ายนะซิ เช่น
123456, 1111, Baseball, Qwerty, password
.
ดังนั้น hacker ก็แค่ค้นหาในตาราง
ตารางที่ว่าจะเก็บ password พร้อมค่า hash
(เก็บพวก password ที่คนใช้กันเยอะ)
ซึ่ง hacker ก็จะค้นหาหาในตารางดังกล่าว
แบบไล่สุ่มไปเรื่อยๆ เดี่ยวก็เจอไม่ยาก
:
++++
👉 ก็เพราะเหตุนี้จึงต้องหาวิธีแก้ทาง hacker
ให้เดาสุ่มหา password มันทวีความยุ่งยากไปอีก
(จุดประสงค์ป้องเทคนิคพวกเดาสุ่ม เช่น
dictionary attacks, Brute Force Attacks, Lookup Tables,
Reverse Lookup Tables, Rainbow Tables)
:
👉 สำหรับวิธีการป้องกัน ก็จะทำประมาณเนี่ย
ก่อนที่จะเก็บ password ลงฐานข้อมูล ระบบจะต้องทำเยี่ยงนี้
1) จะนำ password มากบวกกับค่า salt
2) จากนั้นนำค่าที่ได้จากข้อ 1 มาเข้า hash function
แล้วเก็บค่า hash ที่ได้ลงฐานข้อมูล
.
ขออธิบายข้อ 2 เพิ่มเติม
จากเดิมเราเรียกใช้ hash function เช่น
hash("1234")
แต่เราจะเปลี่ยนมาเรียก
hash("1234" + "QxLUF1bgIAdeQX")
hash("1234" + "bv5PehSMfV11Cd")
hash("1234" + "YYLmfY6IehjZMQ")
.
ซึ่ง "QxLUF1bgIAdeQX", "bv5PehSMfV11Cd", "YYLmfY6IehjZMQ" ที่ยกตัวอย่าง
มันก็คือค่า "salt" (ที่แปลว่า "เกลือ")
เป็นค่า radom ที่แจกให้แต่ละยูสเซอร์ ไม่ซ้ำกันเลย
เราจะนำมาบวกกับ password ก่อนเข้า hash function
:
เวลาเก็บ password ในฐานข้อมูล
แต่ละยูสเซอร์จะต้องเก็บทั้งค่า hash กับ salt เอาไว้
.
👉 พอเวลายูสเซอร์ล็อกอินใส่ user name / password
1) ระบบก็เอา password มาบวกกับ salt
(แต่ละยูสเซอร์เก็บค่า salt คนละค่า)
2) นำค่าที่ได้จากข้อ 1 มาเข้า hash funcion
3) นำค่าที่ได้จากข้อ 2 ไปเปรียบเทียบกับ ค่า hash ในฐานข้อมูล
4) ถ้าตรงกันแสดงว่ายูสเซอร์ป้อน password ถูกต้อง แสดงว่าล็อกอินสำเร็จ
..
แต่มีข้อแม้ hash function ที่ควรใช้ได้แก่
Argon2, bcrypt, scrypt ($2y$, $5$, $6$), หรือ PBKDF2
มันถึงจะปลอดภัย ทำให้การเดาสุ่มหา password ทำได้ยากขึ้น
.
ส่วนพวก hash function ที่ทำงานได้รวดเร็ว เช่น
MD5, SHA1, SHA256, SHA512, RipeMD, WHIRLPOOL, SHA3, etc.
เนี่ยห้ามใช้นะครับ
หรืออย่าง crypt (เวอร์ชั่น $1$, $2$, $2x$, $3$) ก็ไม่ห้ามใช้นะครับ
:
+++++
👉 ในแง่การเขียนโปรแกรม
เข้าใจว่าแต่ละภาษาโปรแกรมมิ่ง หรือพวกเฟรมเวิร์ค
เขาคงเตรียมไลบรารี่ หรือเครื่องมือ
เอาไว้ให้ใช้ hash function รวมกับค่า salt อยู่แล้ว
เราสามารถเปิดคู่มือ แล้วทำตามได้เลยครับ
:
++++
👉 ย้ำที่อธิบายทั้งหมดนี้
เป็นการป้องกันการเจาะระบบฝั่งแอพ หรือระบบเท่านั้น
hacker ยังสามารถเดาสุ่มป้อน password
ได้โดยตรงที่หน้าแอพ หรือฝั่งล็อกอินหน้าโปรแกรมได้เลย (Brute Force Attacks)
.
ทางที่ดีระบบต้องเช็กว่าถ้ายูสเซอร์กรอก password ผิดติดต่อกันกี่ครั้ง?
ถึงจะระงับการใช้ user name นี้ชั่วคราว หรือจะแบน IP ที่ล็อกอินเข้ามาไปเลยก็ยังได้
.
ยิ่งถ้าเป็นการล็อกอินผ่านเว็บไซต์
ก็ควรให้เว็บเราใช้โปรโตคอล https ขืนไปใช้ http ธรรมดา
โอกาสเจอ hacker ดักจับ user name/ passwod กลางทางมีสูงมาก
.
เว้นแต่เราจะใช้เทคนิค Digest Access Authentication เข้าช่วย
ทำให้การส่ง user name/password ผ่าน http ธรรมดาได้อย่างปลอดภัย (แต่โค้ดดิ่งก็จะยุ่งยากตาม)
:
+++
😁 สรุป
1) เก็บพาสเวิร์ดตรงๆ โดยไม่เข้ารหัส -> hacker ชอบนักแล
2) เก็บพาสเวิร์ดโดยเข้ารหัสในรูป Hash values -> hacker อ่านไม่ออกก็จริง แต่ไม่ยากที่จะเดา password
3) เก็บพาสเวิร์ดโดยเข้ารหัสในรูป Hash values + salt vaues
-> hacker อ่านไม่ออก ต่อให้ไปเดาสุ่ม ก็จะทำได้ยากขึ้น
จุดประสงค์ข้อ 3 นี้เพื่อป้องกันด้วยเทคนิค ..... dictionary attacks, Brute Force Attacks, Lookup Tables, Reverse Lookup Tables, Rainbow Table
.
สุดท้ายขอจบเรื่อง hash funcion กับ password
ให้รอดพ้นจาก hacker ไว้เพียงเท่านั้น
หวังว่าจะเป็นประโยชน์ต่อทุกท่านนะครับ
.
++++++
เขียนโดย โปรแกรมเมอร์ไทย thai programmer
อ้างอิง
https://crackstation.net/hashing-security.htm
https://en.wikipedia.org/wiki/Hash_function