ฉันต้องการจัดเก็บข้อมูลที่ละเอียดอ่อน (คีย์เข้ารหัสแบบสมมาตรที่ฉันต้องการเก็บไว้เป็นส่วนตัว) ในแอปพลิเคชัน C ++ ของฉัน วิธีง่ายๆคือทำสิ่งนี้:
std::string myKey = "mysupersupersecretpasswordthatyouwillneverguess";
อย่างไรก็ตามการเรียกใช้แอปพลิเคชันผ่านstrings
กระบวนการ (หรืออื่น ๆ ที่แยกสตริงจากแอปไบนารี) จะเปิดเผยสตริงด้านบน
ควรใช้เทคนิคใดในการปิดบังข้อมูลที่ละเอียดอ่อนดังกล่าว
แก้ไข:
โอเคคุณทุกคนบอกว่า"ไฟล์ปฏิบัติการของคุณสามารถย้อนกลับทางวิศวกรรมได้"แน่นอน! นี่เป็นสัตว์เลี้ยงของฉันดังนั้นฉันจะคุยโวสักหน่อยที่นี่:
เหตุใด 99% (โอเคดังนั้นบางทีฉันพูดเกินจริงเล็กน้อย) ของคำถามเกี่ยวกับความปลอดภัยทั้งหมดในไซต์นี้ได้รับคำตอบพร้อมกับฝนตกหนักว่า "ไม่มีวิธีที่เป็นไปได้ในการสร้างโปรแกรมที่ปลอดภัยอย่างสมบูรณ์แบบ" ซึ่งไม่เป็นประโยชน์ ตอบ! ความปลอดภัยเป็นระดับเลื่อนระหว่างการใช้งานที่สมบูรณ์แบบและไม่มีการรักษาความปลอดภัยที่ปลายด้านหนึ่งและความปลอดภัยที่สมบูรณ์แบบ แต่ไม่มีการใช้งานที่อื่น
ประเด็นคือคุณเลือกตำแหน่งของคุณบนสเกลเลื่อนนั้นขึ้นอยู่กับสิ่งที่คุณพยายามทำและสภาพแวดล้อมที่ซอฟต์แวร์ของคุณจะทำงาน ฉันไม่ได้เขียน app สำหรับการติดตั้งทางทหารผมเขียน app สำหรับคอมพิวเตอร์ที่บ้าน ฉันต้องการเข้ารหัสข้อมูลในเครือข่ายที่ไม่น่าเชื่อถือด้วยคีย์การเข้ารหัสที่รู้จักกันดี ในกรณีเหล่านี้ "การรักษาความปลอดภัยผ่านความสับสน" น่าจะดีพอ! แน่นอนว่าใครบางคนที่มีเวลาพลังงานและทักษะเพียงพอสามารถทำวิศวกรรมย้อนกลับไบนารีและค้นหารหัสผ่านได้ แต่เดาอะไร? ฉันไม่สนใจ:
เวลาที่ฉันใช้ในการติดตั้งระบบรักษาความปลอดภัยชั้นยอดนั้นแพงกว่าการสูญเสียยอดขายเนื่องจากเวอร์ชันที่แตก (ไม่ใช่ว่าฉันขายสิ่งนี้จริงๆ แต่คุณเข้าใจ) ท้องฟ้าสีครามนี้ "ให้มันเป็นวิธีที่ดีที่สุดเท่าที่จะเป็นไปได้" แนวโน้มในการเขียนโปรแกรมในหมู่โปรแกรมเมอร์มือใหม่นั้นเป็นเรื่องโง่ที่จะพูดน้อยที่สุด
ขอขอบคุณที่สละเวลาตอบคำถามนี้ซึ่งเป็นประโยชน์มากที่สุด น่าเสียดายที่ฉันยอมรับคำตอบได้เพียงคำตอบเดียว แต่ฉันได้โหวตคำตอบที่เป็นประโยชน์ทั้งหมดแล้ว