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

CRYPTOGRAPHY ต้องมีการเขียนโปรแกรมที่เกี่ยวข้อง การเข้ารหัสครอบคลุมเหนือสิ่งอื่นใดการเข้ารหัสการแฮชและลายเซ็นดิจิทัล คำถามเกี่ยวกับการเข้ารหัสที่ไม่เกี่ยวข้องโดยตรงกับการพัฒนาซอฟต์แวร์ควรถามที่ crypto.stackexchange.com

14
เหตุใดช่วงเวลาสำคัญในการเข้ารหัส?
สิ่งหนึ่งที่ทำให้ฉันเป็นนักเข้ารหัสไม่ใช่: ทำไมการใช้หมายเลขเฉพาะจึงสำคัญ? อะไรทำให้พวกเขาพิเศษในการเข้ารหัส? ไม่มีใครมีคำอธิบายสั้นๆ ง่ายๆ ? (ฉันรู้ว่ามีไพรเมอร์มากมายและการใช้การเข้ารหัสเป็นคัมภีร์ แต่ตามที่กล่าวไว้: ฉันไม่ต้องการใช้อัลกอริทึมการเข้ารหัสลับของตัวเองและสิ่งที่ฉันพบทำให้สมองของฉันระเบิด - ไม่มี 10 หน้าสูตรคณิตศาสตร์ ได้โปรด :)) ขอบคุณสำหรับคำตอบทั้งหมด ฉันยอมรับสิ่งที่ทำให้แนวคิดที่แท้จริงชัดเจนที่สุดสำหรับฉัน

8
การเกลือรหัสผ่านของคุณ: แนวทางปฏิบัติที่ดีที่สุด
ฉันสงสัยอยู่เสมอ ... จะดีไปกว่ากันถ้าหากฉันใส่รหัสผ่านสำหรับการแฮช: คำนำหน้าหรือ postfix? ทำไม? หรือมันมีความสำคัญตราบใดที่คุณเค็ม? ที่จะอธิบาย: เราทุกคน (หวังว่า) ทราบโดยขณะนี้ว่าเราควรเกลือรหัสผ่านก่อนที่เราจะสับมันสำหรับการจัดเก็บในฐานข้อมูล [ แก้ไข:ดังนั้นคุณสามารถหลีกเลี่ยงสิ่งที่ชอบสิ่งที่เกิดขึ้นเมื่อเร็ว ๆ นี้เจฟฟ์แอด ] โดยทั่วไปจะทำโดยการต่อเกลือกับรหัสผ่านก่อนที่จะผ่านอัลกอริทึมการแปลงแป้นพิมพ์ แต่ตัวอย่างแตกต่างกันไป ... บางตัวอย่างเสริมเกลือก่อนรหัสผ่าน ตัวอย่างบางส่วนเพิ่มเกลือหลังจากรหัสผ่าน ฉันเคยเห็นบางคนพยายามวางเกลือไว้ตรงกลาง ดังนั้นวิธีใดดีกว่าและทำไม มีวิธีที่ลดโอกาสของการชนกันของแฮชหรือไม่? Googling ของฉันไม่ได้เปิดการวิเคราะห์ที่ดีในเรื่อง แก้ไข:คำตอบที่ยอดเยี่ยม folks! ฉันขอโทษฉันเลือกได้เพียงคำตอบเดียว :)

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 

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

21
ทำไม SSL handshake ให้ข้อยกเว้น 'ไม่สามารถสร้าง DH keypair' ได้
เมื่อฉันทำการเชื่อมต่อ SSL กับเซิร์ฟเวอร์ IRC บางตัว (แต่ไม่ใช่อื่น ๆ - น่าจะเป็นเพราะวิธีการเข้ารหัสที่เซิร์ฟเวอร์ต้องการ) ฉันได้รับข้อยกเว้นต่อไปนี้: Caused by: java.lang.RuntimeException: Could not generate DH keypair at com.sun.net.ssl.internal.ssl.DHCrypt.<init>(DHCrypt.java:106) at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverKeyExchange(ClientHandshaker.java:556) at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:183) at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593) at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:893) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165) ... 3 more สาเหตุสุดท้าย: Caused by: java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can …

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 แฮช …


10
เข้ารหัสรหัสผ่านในไฟล์กำหนดค่า? [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่? อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันมีโปรแกรมที่อ่านข้อมูลเซิร์ฟเวอร์จากไฟล์การกำหนดค่าและต้องการเข้ารหัสรหัสผ่านในการกำหนดค่านั้นซึ่งโปรแกรมของฉันสามารถอ่านและถอดรหัสได้ ข้อกำหนด: เข้ารหัสรหัสผ่านข้อความธรรมดาเพื่อเก็บไว้ในไฟล์ ถอดรหัสรหัสผ่านที่เข้ารหัสที่อ่านจากไฟล์จากโปรแกรมของฉัน มีคำแนะนำเกี่ยวกับวิธีการดำเนินการนี้หรือไม่? ฉันกำลังคิดที่จะเขียนอัลกอริทึมของตัวเอง แต่ฉันรู้สึกว่ามันไม่ปลอดภัยอย่างมาก

15
ช่องว่างภายในไม่ถูกต้องและไม่สามารถลบออกได้?
ฉันได้ตรวจสอบทางออนไลน์ว่าข้อยกเว้นนี้มีความหมายอย่างไรกับโปรแกรมของฉัน แต่ดูเหมือนจะไม่พบวิธีแก้ปัญหาหรือสาเหตุที่เกิดขึ้นกับโปรแกรมเฉพาะของฉัน ฉันใช้ตัวอย่างที่ให้ msdn เพื่อเข้ารหัสและถอดรหัส XmlDocument โดยใช้อัลกอริทึม Rijndael การเข้ารหัสใช้งานได้ดี แต่เมื่อฉันพยายามถอดรหัสฉันได้รับข้อยกเว้นดังต่อไปนี้: ช่องว่างภายในไม่ถูกต้องและไม่สามารถลบออกได้ ใครช่วยบอกทีว่าฉันทำอะไรได้บ้างเพื่อแก้ปัญหานี้ รหัสของฉันด้านล่างคือที่ที่ฉันได้รับคีย์และข้อมูลอื่น ๆ หาก cryptoMode เป็นเท็จจะเรียกเมธอดถอดรหัสซึ่งเป็นจุดที่เกิดข้อยกเว้น: public void Cryptography(XmlDocument doc, bool cryptographyMode) { RijndaelManaged key = null; try { // Create a new Rijndael key. key = new RijndaelManaged(); const string passwordBytes = "Password1234"; //password here byte[] saltBytes = …
126 c#  cryptography 

10
ใช้การเข้ารหัส AES ใน C #
ล็อค คำถามนี้และคำตอบถูกล็อกเนื่องจากคำถามไม่ตรงประเด็น แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ยังไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ดูเหมือนจะไม่พบตัวอย่างที่ดีในการใช้การเข้ารหัส AES 128 บิต ใครมีโค้ดตัวอย่างบ้าง

5
การคำนวณแฮช MD5 ของ CPU ที่เข้มข้นน้อยกว่าฟังก์ชันตระกูล SHA หรือไม่
กำลังคำนวณแฮช MD5 น้อยกว่า CPU ที่เข้มข้นกว่า SHA-1 หรือ SHA-2 บนฮาร์ดแวร์ x86 ของแล็ปท็อป "มาตรฐาน" หรือไม่ ฉันสนใจข้อมูลทั่วไปไม่เจาะจงชิปบางตัว UPDATE: ในกรณีของฉันฉันสนใจที่จะคำนวณแฮชของไฟล์ หากขนาดไฟล์มีความสำคัญสมมติว่าเป็น 300K
115 hash  cryptography  md5  sha1  sha2 

4
เนื่องจากบล็อกสุดท้ายไม่ได้รับการหุ้มอย่างถูกต้อง
ฉันกำลังพยายามใช้อัลกอริทึมการเข้ารหัสที่ใช้รหัสผ่าน แต่ฉันได้รับข้อยกเว้นนี้: javax.crypto.BadPaddingException: เนื่องจากบล็อกสุดท้ายไม่ได้รับการหุ้มอย่างถูกต้อง ปัญหาอาจเกิดจากอะไร? นี่คือรหัสของฉัน: public class PasswordCrypter { private Key key; public PasswordCrypter(String password) { try{ KeyGenerator generator; generator = KeyGenerator.getInstance("DES"); SecureRandom sec = new SecureRandom(password.getBytes()); generator.init(sec); key = generator.generateKey(); } catch (Exception e) { e.printStackTrace(); } } public byte[] encrypt(byte[] array) throws CrypterException { try{ Cipher cipher …

6
วิธีเข้ารหัส / ถอดรหัสข้อมูลใน php
ตอนนี้ฉันเป็นนักเรียนและฉันกำลังเรียน PHP ฉันกำลังพยายามเข้ารหัส / ถอดรหัสข้อมูลง่ายๆใน PHP ฉันทำการค้นคว้าทางออนไลน์และบางส่วนก็ค่อนข้างสับสน (อย่างน้อยก็สำหรับฉัน) นี่คือสิ่งที่ฉันพยายามทำ: ฉันมีตารางที่ประกอบด้วยฟิลด์เหล่านี้(UserID, Fname, Lname, Email, Password) สิ่งที่ฉันต้องการคือมีการเข้ารหัสฟิลด์ทั้งหมดแล้วถอดรหัส (เป็นไปได้หรือไม่ที่จะใช้sha256สำหรับการเข้ารหัส / ถอดรหัสหากไม่มีอัลกอริทึมการเข้ารหัสใด ๆ ) สิ่งที่ฉันต้องการเรียนรู้อีกอย่างหนึ่งคือการสร้างทางเดียวhash(sha256)รวมกับ "เกลือ" ที่ดีได้อย่างไร (โดยพื้นฐานแล้วฉันแค่ต้องการใช้การเข้ารหัส / ถอดรหัสอย่างง่ายhash(sha256)+salt) เซอร์ / แหม่มคำตอบของคุณจะเป็นประโยชน์อย่างยิ่งและจะได้รับการชื่นชมมากขอบคุณ ++

8
ฉันควรใช้ความยาวคีย์ RSA เท่าใดสำหรับใบรับรอง SSL
ฉันกำลังอยู่ในขั้นตอนการสร้าง CSR และฉันสงสัยว่าข้อใดเป็นเนื้อหาที่ยาวที่สุดสำหรับคีย์ RSA ของฉัน แน่นอน 384 น่าจะอ่อนแอเกินไปและ 16384 อาจช้าเกินไป มีความสอดคล้องกันเกี่ยวกับความยาวคีย์ที่ควรใช้ขึ้นอยู่กับอายุการใช้งานของใบรับรองหรือไม่ แก้ไข: เช่นเดียวกับคนส่วนใหญ่ฉันต้องการให้คีย์ของฉันแข็งแรงพอสมควร ฉันไม่กังวลว่า NSA อาจทำลายกุญแจของฉันในปี 2019 ฉันแค่อยากรู้ว่าแนวทางปฏิบัติที่ดีที่สุดคืออะไรเมื่อมีแผนจะทำธุรกิจปกติ (เช่นไซต์อีคอมเมิร์ซ)

8
MD5 คือ 128 บิต แต่ทำไมถึงเป็น 32 ตัวอักษร?
ฉันอ่านเอกสารเกี่ยวกับ md5 มันบอกว่ามัน 128 บิต แต่ทำไมถึงเป็น 32 ตัวอักษร? ฉันคำนวณอักขระไม่ได้ 1 ไบต์คือ 8 บิต ถ้า 1 อักขระคือ 1 ไบต์ แล้ว 128 บิตคือ 128/8 = 16 ไบต์ใช่ไหม แก้ไข: SHA-1 สร้าง 160 บิตมีอักขระกี่ตัว?

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