ฉันต้องการเข้ารหัสไฟล์โดยใช้ AES-256 ฉันจะทำสิ่งนั้นอย่างรวดเร็วและง่ายดายและฉันจะ - หรือคนอื่น ๆ - เข้ารหัสอีกครั้งได้อย่างไร
ฉันต้องการเข้ารหัสไฟล์โดยใช้ AES-256 ฉันจะทำสิ่งนั้นอย่างรวดเร็วและง่ายดายและฉันจะ - หรือคนอื่น ๆ - เข้ารหัสอีกครั้งได้อย่างไร
คำตอบ:
น่าเสียดายที่ไม่มีวิธีแก้ปัญหาที่ง่ายในการรักษาความปลอดภัยข้อมูลของคุณ ลองนึกถึงกรณีการใช้งานของคุณบางทีสิ่งอื่นที่ไม่ใช่ AES ธรรมดาน่าจะเหมาะสมกว่า
หากคุณต้องการการเข้ารหัสแพลตฟอร์มอิสระที่ง่ายมากที่คุณสามารถใช้OpenSSL
หากคุณยังต้องการใช้ openssl:
การเข้ารหัสลับ:
openssl aes-256-cbc -in attack-plan.txt -out message.enc
ถอดรหัส:
openssl aes-256-cbc -d -in message.enc -out plain-text.txt
คุณสามารถรับ openssl เพื่อbase64
เข้ารหัสข้อความโดยใช้-a
สวิตช์ทั้งการเข้ารหัสและถอดรหัส ด้วยวิธีนี้คุณสามารถวางไซเฟอร์เท็กซ์ในข้อความอีเมลได้ตัวอย่างเช่น มันจะมีลักษณะเช่นนี้:
stefano:~$ openssl aes-256-cbc -in attack-plan.txt -a
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
U2FsdGVkX192dXI7yHGs/4Ed+xEC3ejXFINKO6Hufnc=
โปรดทราบว่าคุณมีตัวเลือกของเลขศูนย์และโหมดการทำงาน สำหรับการใช้งานปกติฉันแนะนำ aes 256 ในโหมด CBC เหล่านี้เป็นโหมด ciphers ที่คุณมีอยู่ (นับ AES เท่านั้น):
aes-128-cbc ← this is okay
aes-128-ecb
aes-192-cbc
aes-192-ecb
aes-256-cbc ← this is recommended
aes-256-ecb
ดูสิ่งนี้ด้วย:
โปรดทราบ:
OpenSSL จะขอรหัสผ่านจากคุณ นี่ไม่ใช่กุญแจเข้ารหัสมันไม่ จำกัด ที่ 32 ไบต์! หากคุณกำลังจะถ่ายโอนไฟล์กับคนอื่นความลับที่แบ่งปันของคุณควรแข็งแกร่งมาก คุณสามารถใช้ไซต์นี้เพื่อรับทราบว่ารหัสผ่านของคุณดีแค่ไหน:
คำเตือน: ฉันได้ตรวจสอบแล้วว่าไซต์เหล่านี้ไม่ได้ส่งรหัสผ่านของคุณไปยังเซิร์ฟเวอร์ แต่สามารถเปลี่ยนแปลงได้ตลอดเวลา ใช้เว็บไซต์เหล่านี้ด้วยเครื่องมือ dev / ผู้ตรวจสอบและตรวจสอบว่าพวกเขาส่งอะไรก่อนพิมพ์รหัสผ่านที่รัดกุมของคุณ
/usr/bin/openssl enc -aes-256-cbc -a -salt -in $1 -out ${1}.enc
ย้อนกลับอย่างที่คุณคาดหวัง
openssl
เครื่องมือบรรทัดคำสั่งส่วนใหญ่เป็นหลักฐานพิสูจน์แนวคิดสำหรับการทดสอบไลบรารี OpenSSL คำตอบที่เหมาะสมสำหรับคำถามนี้เป็นทั้งจีพีจีหรือ Archiver บางอย่างเช่น7z
openssl enc
จริงแล้วไม่ปลอดภัยหากคุณมีรหัสผ่านที่อ่อนแอ ก่อนหน้านี้ฉันแนะนำการใช้งานบางอย่างopenssl enc
แต่ตอนนี้แนะนำให้ใช้gpg
แทนเพราะใช้ KDF ในวิธีที่ดีกว่า ดูคำตอบนี้
ฉันชอบที่จะใช้gpg
คำสั่ง:
การเข้ารหัสลับ:
gpg --cipher-algo AES256 --symmetric filename.tar.gz
ชวเลข:
gpg --cipher-algo AES256 -c filename.tar.gz
สิ่งนี้จะถามวลีรหัสผ่าน
ถอดรหัส:
gpg --output filename.tar.gz --decrypt filename.tar.gz.gpg
ชวเลข:
gpg -o filename.tar.gz -d filename.tar.gz.gpg
นอกจากนี้คุณยังสามารถเพิ่มcipher-algo AES256
เพื่อ~/.gnupg/gpg.conf
ที่จะทำให้ AES256 เริ่มต้น (อ้างอิงจาก manpage เป็นCAST5 )
AES
(หมายถึง AES-128) AES-128 นั้นเร็วกว่าเล็กน้อยและไม่ปลอดภัยน้อยกว่า
gpg
แคชรหัสผ่านได้อย่างไร
7z (เมื่อใช้ตัวเลือกรหัสผ่าน ) ใช้การเข้ารหัส AES 256 บิต (ด้วยการยืดคีย์ SHA256 )
ติดตั้ง ( p7zip-full
) คลิกขวาที่แฟ้มหรือไดเรกทอรีที่คุณต้องการในการเข้ารหัสและเลือกการบีบอัด , .7zและตัวเลือกอื่น ๆ / รหัสผ่าน
สำหรับการถอดรหัสคลิกขวาที่.7zไฟล์และเลือกสารสกัดจากที่นี่
เว็บไซต์ที่เชื่อมโยงมีเครื่องมือเข้ารหัส / ถอดรหัส aes โอเพนซอร์ซ 256-bit และเป็นแพลตฟอร์มที่หลากหลาย - MacOs, Windows, Linux และอื่น ๆ ผ่าน Java
การเข้ารหัสลับ: aescrypt -e <file>
ถอดรหัส: aescrypt -d <file>
คุณสามารถสำรองและเข้ารหัสโฮมโฟลเดอร์ของคุณโดยใช้ไวยากรณ์:
tar -cvf - /home/<home_folder> | aescrypt -e -p <password_message> - > backup.tar.aes
make
sudo make install
ดาวน์โหลดไบนารีหรือซอร์สโค้ดจากเว็บไซต์
คำแนะนำมากมายที่ฉันจะทำมีอยู่แล้วในหัวข้อนี้ โดยทั่วไป openssl เป็นวิธีที่ง่ายที่สุดในการเข้ารหัสไฟล์หรือสคริปต์ อย่างไรก็ตามฉันจะระมัดระวังไม่ให้ใช้AES-256เพียงเพราะมันไม่สามารถใช้ได้ใน openssl ทุกรุ่นในบางแพลตฟอร์ม OS ที่ใหม่กว่าส่วนใหญ่ ... เช่น Linux มีอยู่ แต่คนอื่นเช่น AIX 5.3 ไม่ได้ (ฉันคิดว่า HP-UX เช่นกัน) หากคุณตั้งใจจะใช้ไฟล์หรือสคริปต์ของคุณข้ามแพลตฟอร์มที่แตกต่างกันฉันขอแนะนำให้ใช้AES-128เพราะมีให้บริการทุกที่
คุณจะ "เข้ารหัสไฟล์ได้อย่างรวดเร็วและง่ายดายโดยใช้ AES-128 ได้อย่างไร?
เว็บไซต์อย่างwww.ShellScrypt.comใช้ openssl AES-128 ค่อนข้างเข้มงวดในการเข้ารหัสเชลล์สคริปต์จากนั้นสร้างสำเนาที่เข้ารหัสของสคริปต์ที่สามารถเรียกใช้งานได้ สิ่งที่คุณต้องทำคือวางสคริปต์ลงในเว็บไซต์และไฟล์ซิปจะถูกสร้างขึ้นสำหรับคุณ ไฟล์ซิปนั้นจะมีเวอร์ชันไฟล์เข้ารหัสของคุณ (และสามารถเรียกใช้งานได้หากเป็นสคริปต์) สิ่งนี้ช่วยให้คุณสามารถ " เข้ารหัสไฟล์ / สคริปต์" ได้อย่างง่ายดาย "และ" สะดวก "โดยไม่ต้องทำตามข้อกำหนดของแพ็กเกจหรือโมดูลในทุกระบบที่คุณตั้งใจจะใช้สคริปต์บนหรือเรียกใช้ซับซ้อนหรือสับสน
แสดงด้านล่างเป็นคำสั่งการเข้ารหัส / ถอดรหัส opensslพื้นฐานที่ใช้ AES-128:
test@test-VirtualBox:~$
test@test-VirtualBox:~$ echo precious-content | openssl aes-128-cbc -a -salt -k mypassword
U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z
test@test-VirtualBox:~$
test@test-VirtualBox:~$ echo U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z | openssl aes-128-cbc -a -d -salt -k mypassword
precious-content
test@test-VirtualBox:~$
test@test-VirtualBox:~$
เมื่อเพิ่มคำตอบของ Stefano Palazzo ฉันได้สร้างฟังก์ชั่นทุบตีเล็ก ๆ ที่ทำงานคล้ายกับคำสั่ง base64
มันจะ aes256 เข้ารหัสไฟล์และจากนั้น base64 เข้ารหัส เมื่อทำสิ่งที่ตรงกันข้ามมันจะเบส 64 ถอดรหัสถอดรหัสแล้วคายต้นฉบับธรรมดา
aes256() {
decodeMe=""
isPipe="$([ ! -t 0 ] && echo "true" || echo "false")"
if [ "$1" = '-d' ] || [ "$1" = '--decode' ]; then
decodeMe="-d"
shift
fi
if [ "$isPipe" = "true" ]; then
read input
printf '%s\n' "$input" | openssl aes-256-cbc -a $decodeMe
exitCode="$?"
else
openssl aes-256-cbc -a $decodeMe -in "$*"
exitCode="$?"
fi
unset isPipe decodeMe input
return "$exitCode"
}
การใช้งาน:
echo "my string" | aes256
# enter aes-256-cbc encryption password
# Returns: U2FsdGVkX1++e/BhBGlNOzNvarqq7zI13S/hbiKVzXQ=
echo "U2FsdGVkX1++e/BhBGlNOzNvarqq7zI13S/hbiKVzXQ=" | aes256 -d
# enter aes-256-cbc decryption password
# Returns: my string
aes256 file.plain > file.crypt
# enter aes-256-cbc encryption password
aes256 -d file.crypt
# enter aes-256-cbc decryption password
# Spits out original unencrypted file.
openssl aes-256-cbc
สั้นกว่าopenssl enc -aes-256-cbc
และใช้งานได้เช่นกันman enc
หน้าคู่มือสำหรับการนี้สามารถใช้ได้โดยการทำงาน ไม่เคยใช้ข้อมูลที่ไม่ควรจะมีอารมณ์กับมักจะใช้ecb
ซ้ำซ้อนเนื่องจากเป็นค่าเริ่มต้น หากคุณไม่ใช้งานเอาต์พุตจะถูกเขียนไปยังเอาต์พุตมาตรฐานซึ่งมีประโยชน์หากคุณต้องการวิเคราะห์ข้อมูล แต่ไม่เขียนลงดิสก์ คำสั่งถัดไปแสดง Cound บรรทัดสำหรับเท็กซ์: (ใช้อื่นอ่านไฟล์: )cbc
-salt
-out filename
openssl aes-256-cbc -d -in filename | wc -l
openssl aes-256-cbc -d -in filename | less