คำถามติดแท็ก hash

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

2
เหตุใดจึงใช้ '397' สำหรับการแทนที่ ReSharper GetHashCode
เช่นเดียวกับคุณหลายคนฉันใช้ ReSharper เพื่อเร่งกระบวนการพัฒนา เมื่อคุณใช้เพื่อแทนที่สมาชิกที่เท่าเทียมกันของคลาสรหัส -gen ที่สร้างขึ้นสำหรับ GetHashCode () ดูเหมือนว่า: public override int GetHashCode() { unchecked { int result = (Key != null ? Key.GetHashCode() : 0); result = (result * 397) ^ (EditableProperty != null ? EditableProperty.GetHashCode() : 0); result = (result * 397) ^ ObjectId; return result; } } …

20
มีฟังก์ชั่นแฮชโค้ดใน JavaScript หรือไม่?
โดยพื้นฐานแล้วฉันกำลังพยายามสร้างวัตถุของวัตถุที่ไม่ซ้ำกันชุด ฉันมีความคิดที่ยอดเยี่ยมเพียงแค่ใช้วัตถุ JavaScript กับวัตถุสำหรับชื่อคุณสมบัติ เช่น, set[obj] = true; ใช้งานได้จนถึงจุดหนึ่ง มันใช้งานได้ดีกับสตริงและตัวเลข แต่ด้วยวัตถุอื่นพวกมันดูเหมือนจะ "แฮช" เป็นค่าเดียวกันและเข้าถึงคุณสมบัติเดียวกัน มีวิธีที่ฉันสามารถสร้างค่าแฮชที่ไม่ซ้ำกันสำหรับวัตถุหรือไม่? สตริงและตัวเลขทำได้อย่างไรฉันสามารถแทนที่การทำงานแบบเดียวกันได้หรือไม่?
150 javascript  hash  set  hashcode 

7
SHA-1 มีความปลอดภัยสำหรับการจัดเก็บรหัสผ่านหรือไม่?
สรุป: SHA-1 มีความปลอดภัยเทียบเท่ากับสิ่งใด ๆ ก็ตามจากการโจมตีของ preimage อย่างไรก็ตามมันง่ายในการคำนวณซึ่งหมายความว่าง่ายต่อการติดตั้งการโจมตีแบบ bruteforce หรือพจนานุกรม (เช่นเดียวกับผู้สืบทอดเช่น SHA-256) ฟังก์ชั่นแฮชซึ่งได้รับการออกแบบให้มีราคาแพงในการคำนวณ (เช่น bcrypt) อาจเป็นทางเลือกที่ดีกว่า บางคนพูดอย่างเช่น "SHA-1 เสีย" มากดังนั้นฉันพยายามที่จะเข้าใจความหมายที่แท้จริง สมมติว่าฉันมีฐานข้อมูลของรหัสผ่านแฮช SHA-1 และผู้โจมตีที่มีอัลกอริทึมการทำลาย SHA-1 ที่ทันสมัยและบอตเน็ตที่มี 100,000 เครื่องเข้าถึงได้ (การควบคุมคอมพิวเตอร์ที่ใช้ภายในบ้านมากกว่า 100k หมายความว่าพวกเขาสามารถทำงานได้ประมาณ 10 ^ 15 ต่อวินาที) พวกเขาจะต้องใช้เวลานานเท่าใด ค้นหารหัสผ่านของผู้ใช้คนใดคนหนึ่งหรือไม่ ค้นหารหัสผ่านของผู้ใช้ที่กำหนดหรือไม่ ค้นหารหัสผ่านของผู้ใช้ทั้งหมดหรือไม่ หาวิธีเข้าสู่ระบบในฐานะผู้ใช้คนใดคนหนึ่ง? หาวิธีเข้าสู่ระบบในฐานะผู้ใช้เฉพาะหรือไม่? จะเปลี่ยนไปอย่างไรหากรหัสผ่านถูกใส่เกลือ วิธีการเติมเกลือ (คำนำหน้า, คำนำหน้า, ทั้งสองหรือบางสิ่งที่ซับซ้อนกว่าเช่น xor-ing) มีความสำคัญหรือไม่? นี่คือความเข้าใจปัจจุบันของฉันหลังจาก googling โปรดแก้ไขคำตอบหากฉันเข้าใจผิดบางอย่าง หากไม่มีเกลือการโจมตีแบบสายรุ้งจะค้นหารหัสผ่านทั้งหมดทันที …
148 cryptography  hash  sha1 


4
วิธีปฏิบัติที่ดีที่สุด: การเกลือ & การสร้างรหัสผ่านซ้ำซ้อน?
ฉันได้พบกับการสนทนาที่ฉันได้เรียนรู้ว่าสิ่งที่ฉันทำไม่ได้ในความเป็นจริงการใส่เกลือรหัสผ่าน แต่ทำให้พวกเขาวุ่นวายและฉันก็เริ่มทำทั้งสองอย่างด้วยฟังก์ชั่นเช่น: hash_function($salt.hash_function($pepper.$password)) [multiple iterations] ไม่สนใจอัลกอริทึมแฮชที่เลือก (ฉันต้องการให้นี่เป็นการอภิปรายของเกลือ & พริกไทยและไม่ใช่อัลกอริทึมเฉพาะ แต่ฉันใช้ secure one), นี่เป็นตัวเลือกที่ปลอดภัยหรือฉันควรทำสิ่งที่แตกต่างกันหรือไม่? สำหรับผู้ที่ไม่คุ้นเคยกับข้อกำหนด: เกลือเป็นค่าที่สร้างแบบสุ่มมักจะเก็บไว้กับสตริงในฐานข้อมูลได้รับการออกแบบที่จะทำให้มันเป็นไปไม่ได้ที่จะใช้ตารางแฮชจะ crack รหัสผ่าน เนื่องจากรหัสผ่านแต่ละอันมีเกลือเป็นของตัวเองพวกเขาทุกคนจะต้องถูกบังคับให้ดุร้ายเป็นรายบุคคลเพื่อที่จะถอดรหัสพวกเขา อย่างไรก็ตามเนื่องจากเกลือถูกเก็บไว้ในฐานข้อมูลด้วยรหัสผ่านแฮชการประนีประนอมฐานข้อมูลหมายถึงการสูญเสียทั้งสองอย่าง พริกไทยเป็นค่าคงที่ทั่วทั้งไซต์จัดเก็บแยกต่างหากจากฐานข้อมูล (โดยปกติจะกำหนดค่าตายตัวในรหัสที่มาของโปรแกรม) ซึ่งมีวัตถุประสงค์เพื่อเป็นความลับ มันถูกใช้เพื่อให้การประนีประนอมของฐานข้อมูลจะไม่ทำให้ตารางรหัสผ่านของแอปพลิเคชันทั้งหมดสามารถใช้งานได้อย่างดุร้าย มีอะไรที่ฉันขาดหายไปและการล้างรหัสผ่านของฉันเป็นทางเลือกที่ดีที่สุดในการป้องกันความปลอดภัยของผู้ใช้ มีข้อบกพร่องด้านความปลอดภัยที่เป็นไปได้ที่จะทำเช่นนี้? หมายเหตุ: สมมติว่ามีวัตถุประสงค์เพื่อการสนทนาที่เก็บแอปพลิเคชัน & ฐานข้อมูลไว้ในเครื่องที่แยกต่างหากอย่าแชร์รหัสผ่าน ฯลฯ ดังนั้นการละเมิดเซิร์ฟเวอร์ฐานข้อมูลจึงไม่ได้หมายถึงการละเมิดแอพพลิเคชันเซิร์ฟเวอร์โดยอัตโนมัติ

9
ทำไม XOR ถึงเป็นวิธีเริ่มต้นในการรวมแฮช
สมมติว่าคุณมีสอง hashes H(A)และH(B)และคุณต้องการที่จะรวมพวกเขา ผมเคยอ่านว่าเป็นวิธีที่ดีที่จะรวมทั้งสอง hashes คือการให้พวกเขาเช่นXORXOR( H(A), H(B) ) คำอธิบายที่ดีที่สุดที่ฉันพบถูกสัมผัสสั้น ๆ ที่นี่ในแนวทางฟังก์ชั่นแฮช : แฮคเกอร์ตัวเลขสองตัวที่มีการแจกแจงแบบสุ่มอย่างคร่าวๆส่งผลให้ตัวเลขอีกตัวยังคงมีการกระจายแบบสุ่ม * แต่ตอนนี้ขึ้นอยู่กับค่าสองค่า ... * ที่แต่ละบิตของสองตัวเลขที่จะรวมกัน 0 จะถูกส่งออกถ้าทั้งสองบิตมีค่าเท่ากันหรือ 1 ในคำอื่น ๆ 50% ของชุดค่าผสมจะมีการส่งออก 1 ดังนั้นถ้าบิตอินพุตสองตัวแต่ละตัวมีโอกาสประมาณ 50-50 ที่จะเป็น 0 หรือ 1 ดังนั้นบิตเอาต์พุตก็เช่นกัน คุณสามารถอธิบายสัญชาตญาณและ / หรือคณิตศาสตร์ได้ไหมว่าทำไมแฮคเกอร์ถึงควรเป็นปฏิบัติการเริ่มต้นสำหรับการรวมฟังก์ชั่นแฮช (แทนที่จะเป็น OR หรือ AND เป็นต้น)

9
อะไรคือวิธีที่สง่างามใน Ruby เพื่อบอกว่าตัวแปรคือ Hash หรือ Array?
เพื่อตรวจสอบว่า@some_varคืออะไรฉันกำลังทำไฟล์ if @some_var.class.to_s == 'Hash' ผมมั่นใจว่ามีวิธีที่สง่างามมากขึ้นเพื่อตรวจสอบว่า@some_varเป็นหรือHashArray
144 ruby  arrays  hash 

7
การแฮชสตริงด้วย Sha256
ฉันพยายามแฮชสตริงโดยใช้ SHA256 ฉันใช้รหัสต่อไปนี้: using System; using System.Security.Cryptography; using System.Text; public class Hash { public static string getHashSha256(string text) { byte[] bytes = Encoding.Unicode.GetBytes(text); SHA256Managed hashstring = new SHA256Managed(); byte[] hash = hashstring.ComputeHash(bytes); string hashString = string.Empty; foreach (byte x in hash) { hashString += String.Format("{0:x2}", x); } return hashString; } …
141 c#  string  hash  sha256 

9
ความแตกต่างระหว่างการแฮชรหัสผ่านและการเข้ารหัส
คะแนนสูงสุดของปัจจุบันสำหรับคำถามนี้ระบุว่า: อีกคนหนึ่งที่ไม่มากปัญหาด้านความปลอดภัยแม้ว่ามันจะเป็นที่เกี่ยวข้องกับการรักษาความปลอดภัยมีความสมบูรณ์และความล้มเหลวที่จะต่ำต้อยgrok ความแตกต่างระหว่าง hashing รหัสผ่านและการเข้ารหัสลับ พบมากที่สุดในรหัสที่โปรแกรมเมอร์พยายามให้ฟังก์ชั่น "เตือนฉันด้วยรหัสผ่านของฉัน" ที่ไม่ปลอดภัย ความแตกต่างนี้คืออะไร? ฉันอยู่ภายใต้ความรู้สึกเสมอว่าการแฮ็ชเป็นรูปแบบของการเข้ารหัส ฟังก์ชั่นที่ไม่ปลอดภัยที่ผู้โพสต์อ้างถึงคืออะไร?

9
MD5 ยังดีพอที่จะระบุไฟล์โดยเฉพาะหรือไม่?
MD5 การแฮชไฟล์ยังถือว่าเป็นวิธีที่ดีพอที่จะระบุไฟล์โดยไม่ซ้ำกันเนื่องจากการทำลายอัลกอริทึม MD5 และปัญหาด้านความปลอดภัย ฯลฯ ทั้งหมดหรือไม่ ความปลอดภัยไม่ใช่เรื่องหลักของฉันที่นี่ แต่การระบุแต่ละไฟล์โดยไม่ซ้ำคือ ความคิดใด ๆ
139 hash  md5 

9
ฉันควรเลือกฟังก์ชันแฮชการเข้ารหัสลับแบบใด
กรอบงาน. NET มาพร้อมกับอัลกอริทึมการแฮช 6 แบบ: MD5: 16 ไบต์ (เวลาที่แฮช 500MB: 1462 ms) SHA-1: 20 ไบต์ (1644 มิลลิวินาที) SHA256: 32 ไบต์ (5618 ms) SHA384: 48 ไบต์ (3839 มิลลิวินาที) SHA512: 64 ไบต์ (3820 มิลลิวินาที) RIPEMD: 20 ไบต์ (7066 ms) แต่ละฟังก์ชันเหล่านี้ทำงานแตกต่างกัน MD5 นั้นเร็วที่สุดและ RIPEMD นั้นช้าที่สุด MD5 มีข้อได้เปรียบที่เหมาะกับ Guid ประเภทในตัว; และมันก็เป็นพื้นฐานของประเภท 3 UUID แฮช …


6
รับตำแหน่งแฮช URL และใช้ใน jQuery
ฉันต้องการรับค่าหลังแฮชใน URL ของเพจปัจจุบันจากนั้นจึงสามารถใช้ค่านี้ในฟังก์ชันใหม่ ... เช่น URL อาจเป็น www.example.com/index.html#foo และฉันต้องการใช้สิ่งนี้ร่วมกับรหัสต่อไปนี้ $('ul#foo:first').show(); ฉันคิดว่า / หวังว่าจะมีวิธีการจับสิ่งนี้และเปลี่ยนเป็นตัวแปรที่ฉันสามารถใช้ในโค้ดชิ้นที่สองได้

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

7
ฟังก์ชันแฮชที่ดีคืออะไร
ฟังก์ชันแฮชที่ดีคืออะไร ฉันเห็นฟังก์ชันแฮชและแอปพลิเคชันจำนวนมากในหลักสูตรโครงสร้างข้อมูลในวิทยาลัย แต่ส่วนใหญ่ฉันเข้าใจว่ามันยากที่จะสร้างฟังก์ชันแฮชที่ดี ตามกฎของหัวแม่มือเพื่อหลีกเลี่ยงการชนศาสตราจารย์ของฉันกล่าวว่า: function Hash(key) return key mod PrimeNumber end (mod คือตัวดำเนินการ% ในภาษา C และภาษาที่คล้ายคลึงกัน) โดยมีหมายเลขเฉพาะเป็นขนาดของตารางแฮช ฉันได้รับมันเป็นฟังก์ชั่นที่ค่อนข้างดีในการหลีกเลี่ยงการชนและสิ่งที่รวดเร็ว แต่ฉันจะทำให้ดีขึ้นได้อย่างไร มีฟังก์ชันแฮชที่ดีกว่าสำหรับปุ่มสตริงเทียบกับคีย์ตัวเลขหรือไม่?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.