雖然這篇Fixed-size buffer C#鄉民發文沒有被收入到精華區:在Fixed-size buffer C#這個話題中,我們另外找到其它相關的精選爆讚文章
在 fixed-size產品中有3篇Facebook貼文,粉絲數超過5,790的網紅PrideLab,也在其Facebook貼文中提到, Strap-on,又叫「穿戴式」,就係將性玩具用嘢綁落個身度,騰空你對手嘅方法。呢個方法其實不限性別,亦不限性別氣質,你本身有一碌,可以加多碌;冇嗰碌,都可以臨時加多碌。但係玩還玩,你識唔識玩先? 疫情繼續影響我地,少咗出街嘅你,可以趁呢段時間睇左呢篇練下功先。等你實戰嘅時候,唔會好似成個「鳩揈揈」...
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
「fixed-size」的推薦目錄
- 關於fixed-size 在 ASHTATTOO HONG KONG❤️ Instagram 的最佳解答
- 關於fixed-size 在 ?????? ?? Instagram 的最佳解答
- 關於fixed-size 在 ASHTATTOO HONG KONG❤️ Instagram 的精選貼文
- 關於fixed-size 在 PrideLab Facebook 的最讚貼文
- 關於fixed-size 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最佳貼文
- 關於fixed-size 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最佳貼文
- 關於fixed-size 在 コバにゃんチャンネル Youtube 的最佳貼文
- 關於fixed-size 在 大象中醫 Youtube 的最讚貼文
- 關於fixed-size 在 大象中醫 Youtube 的最佳解答
fixed-size 在 ASHTATTOO HONG KONG❤️ Instagram 的最佳解答
2021-09-10 19:06:32
10K FOLLOWERS GIVEAWAY 🎉 為答謝大家一直以來支持🧸今次將會抽出一位幸運兒送出紋身一個😆而其餘將以$1500出售✨ 參加方法好簡單😗 1️⃣ FOLLOW @ashtattoohk 🙏🏻 2️⃣ LIKE呢個post👍🏻 3️⃣ comment tag 2位朋友+你想要既圖案...
fixed-size 在 ?????? ?? Instagram 的最佳解答
2020-05-10 16:57:38
♌️ Up for grabs 16x8cm Fixed size . . Shoot me a DM/WhatsApp 💋 📲 5681 8558(Click the WhatsApp link in bio)...
fixed-size 在 ASHTATTOO HONG KONG❤️ Instagram 的精選貼文
2020-05-01 16:21:19
hello guys! this is ASH😘and i’m so grateful to announce that bookings are now re-open for DEC 2018-JAN 2019 now🔥‼️I’ve prepared some flash with specia...
fixed-size 在 PrideLab Facebook 的最讚貼文
Strap-on,又叫「穿戴式」,就係將性玩具用嘢綁落個身度,騰空你對手嘅方法。呢個方法其實不限性別,亦不限性別氣質,你本身有一碌,可以加多碌;冇嗰碌,都可以臨時加多碌。但係玩還玩,你識唔識玩先?
疫情繼續影響我地,少咗出街嘅你,可以趁呢段時間睇左呢篇練下功先。等你實戰嘅時候,唔會好似成個「鳩揈揈」,冇人想尷尷尬尬嘅係咪先:)
——
1. 集齊道具
Strap-on 有分fixed-size同free-size兩種。固定款好似底褲或者一個包住屁股嘅框噉,要跟自己尺碼買,同埋扣住按摩棒個圈通常得一個直徑(所以唔該check 埋兩邊直徑)。Free-size就好似著皮帶噉,按自己尺寸扣住,限制少啲,適合plus-size朋友。
仲有一種叫Feeldoe,形狀好似L字型嘅「雙頭龍」。因為呢種主要係靠身體夾實,所以先唔詳細講。
同埋揀啱潤滑劑都好重要呀!尤其係入菊花嘅pegging,就更加需要有持久潤滑劑旁身。
———
2. 習慣Strap-on與你融為一體
Strap-on 雖然屬於身外物,但係同其他玩具唔同,佢係綁上身嘅道具。你幻想下,成件事有啲似著住條三角褲啪啪啪,一開始著上身,正常都會覺得有啲怪。所以如果環境許可,試下平日就噉著住做野,等自己適應下先。
———
3. 無法可修飾的一對手
Strap-on本身好處係可以免提,但係如果角度唔啱,死拮爛拮,對方同你勉強都冇好結果。所以如果你手上的按摩棒質地太彈,太“biao”嘅話,請你~用返對手,調整下位置先好篤。
———
4. 學埋體位
買到strap-on唔係就噉期待可以篤人咁簡單,順便search埋點樣嘅體位,例如狗仔式、牛仔式、坐蓮式,唔同嘅角度,可以刺激到對方裡面嘅敏感帶,或者調整唔同深度,唔係下下都要all in,都要視乎對方接受能力,一步步嚟,先襟玩㗎嘛!
———
5. 世界好大,有機會試多幾款
唔好以為Strap-on 淨係可以綁褲襠位,市面上仲有綁喺身體其他位,例如大腿、下巴,膝蓋、手臂嘅少數款式。用唔同身體部位嚟出力,效果自然不同。老套講句,唔好一套Strap-on 走天涯。預算許可嘅話,試多幾款玩下,可能會發現到新天地。
———
6. 新手嘅你:記得問對方感受
插還插,因為你用按摩棒,冇辦法百分百感受到對方裡面嘅角度,所以有時候表面上篤左入去,但係對方可能會覺得頂到啲奇怪位,又或者速度要互相配合,所以記得要問下對方覺得點,唔係聽到呻吟就快馬加鞭,隨時整痛人都唔知 :<
😚講住咁多先,有問題歡迎message @pridelabhk 或者 @mtna.sc
文:馬天娜 @mtna.sc
畫:陳驚 @chankenn
//
#PrideLab #pridelabhk #LGBT #馬天娜 #性事傳紙仔
#性玩具 #sextalk #同性戀 #男同志 #lesbian #女同志
fixed-size 在 โปรแกรมเมอร์ไทย 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
fixed-size 在 โปรแกรมเมอร์ไทย 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