আমি কীভাবে এএসএস সহ একটি ফাইল দ্রুত এনক্রিপ্ট করব?


81

আমি AES-256 ব্যবহার করে একটি ফাইল এনক্রিপ্ট করতে চাই। আমি কীভাবে তাড়াতাড়ি এবং সহজেই তা করতে পারি এবং কীভাবে আমি - বা অন্য কেউ-এটি আবার ডিক্রিপ্ট করতে পারি?

উত্তর:


86

দুর্ভাগ্যক্রমে, আপনার জিনিসগুলি সুরক্ষার জন্য কোনও সহজ সমাধান নেই। আপনার ব্যবহারের ক্ষেত্রে চিন্তা করুন, সম্ভবত প্লেইন এএসএস ছাড়া অন্য কোনও কিছুর জন্য আরও উপযুক্ত।


আপনি যদি খুব সাধারণ প্ল্যাটফর্ম স্বতন্ত্র এনক্রিপশন চান তবে আপনি ওপেনসেল ব্যবহার করতে পারেন ।

দয়া করে নোট করুন: আপনি নিজের রুমমেট থেকে জন্মদিনের উপহার-ধারণাগুলি.টিএসটি লুকানোর জন্য এটি ব্যবহার করতে পারেন, তবে এটি কোনও নির্ধারিত আক্রমণকারীর বিরুদ্ধে সুরক্ষিত থাকার প্রত্যাশা করবেন না!

  1. মন্তব্যে ইঙ্গিত করা হয়েছে যে, এই পদ্ধতিটি একটি নিখুঁত কী ডেরাইভেশন ফাংশন ব্যবহার করে, তাই আপনার সুরক্ষিত হওয়ার সুযোগ পাওয়ার জন্য আপনার পাসওয়ার্ডটি সর্বোত্তমভাবে ভাল হওয়া দরকার।
  2. অতিরিক্তভাবে, এই পদ্ধতিটি সিফেরেক্সটকে প্রমাণীকরণ করে না, যার অর্থ একটি আক্রমণকারী আপনার নজরে না নিয়ে বিষয়বস্তুগুলি সংশোধন বা দূষিত করতে পারে।
  3. অনেক ধরণের সুরক্ষার জন্য, এনক্রিপশন কেবল পর্যাপ্ত নয় (যেমন আপনি নিরাপদে যোগাযোগের জন্য এনক্রিপশনটি ব্যবহার করতে পারবেন না)

আপনি যদি এখনও ওপেনসেল ব্যবহার করতে চান:

  • জোড়া লাগানো:

    openssl aes-256-cbc -in attack-plan.txt -out message.enc

  • ডিক্রিপশন:

    openssl aes-256-cbc -d -in message.enc -out plain-text.txt

আপনি উভয় এনক্রিপশন এবং ডিক্রিপশন 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=

নোট করুন যে আপনার কাছে সাইফার এবং অপারেশন পদ্ধতির পছন্দ রয়েছে। সাধারণ ব্যবহারের জন্য, আমি সিবিসি মোডে এেস 256 এর পরামর্শ দিই। এগুলি আপনার কাছে পাওয়া সিফারগুলি মোড (কেবলমাত্র এইএস গণনা করা):

aes-128-cbc ← this is okay
aes-128-ecb
aes-192-cbc
aes-192-ecb
aes-256-cbc ← this is recommended
aes-256-ecb

আরো দেখুন:

দয়া করে নোট করুন:

ওপেনএসএসএল আপনাকে একটি পাসওয়ার্ড চাইবে। এটি কোনও এনক্রিপশন কী নয়, এটি 32 বাইটের মধ্যে সীমাবদ্ধ নয়! আপনি যদি অন্য কারও সাথে ফাইল স্থানান্তর করতে চলেছেন তবে আপনার ভাগ করা গোপনীয়তাটি খুব শক্ত হওয়া উচিত। আপনার পাসওয়ার্ডটি কতটা ভাল তা বোঝার জন্য আপনি এই সাইটটি ব্যবহার করতে পারেন:

সতর্কতা: আমি দেখেছি যে এই সাইটগুলি আপনার পাসওয়ার্ড সার্ভারে প্রেরণ করে না, তবে এটি যে কোনও সময় পরিবর্তন হতে পারে। এই সরঞ্জামগুলি ডিভাইস / ইন্সপেক্টর সহ ব্যবহার করুন এবং আপনার শক্তিশালী পাসওয়ার্ডটি টাইপ করার আগে তারা কিছু প্রেরণ করেছে কিনা তা পরীক্ষা করে দেখুন।


9
openssl aes-256-cbcচেয়ে কম openssl enc -aes-256-cbcএবং খুব কাজ করে। এটির জন্য ম্যানুয়াল পৃষ্ঠাটি চলমান man enc। কখনও ব্যবহার ecb, ডাটা যে সঙ্গে বদমেজাজি করা উচিত নয় জন্য সর্বদা ব্যবহার cbc-saltএটি ডিফল্ট হওয়ার পর থেকেই তা নিরর্থক। আপনি যদি বাদ দেন -out filenameতবে আউটপুটটি স্ট্যান্ডার্ড আউটপুটে লেখা হবে যা দরকারী যদি আপনার কেবলমাত্র ডেটা বিশ্লেষণ করতে হয় তবে এটি ডিস্কে না লিখে থাকে। পরবর্তী কমান্ড প্লেইন জন্য লাইন Cound দেখায়: openssl aes-256-cbc -d -in filename | wc -l। (আরেকটি ব্যবহার, একটি ফাইল পড়া openssl aes-256-cbc -d -in filename | less:)
লেকেনস্টেইন

1
আমি প্রায় কোনও স্ক্রিপ্টে এটি ব্যবহার করি: /usr/bin/openssl enc -aes-256-cbc -a -salt -in $1 -out ${1}.enc আপনার প্রত্যাশার বিপরীতে।
belacqua

1
AES 256 থেকে AES 128 এর পছন্দ করার কোনও কারণ নেই @ আরও সাধারণভাবে, opensslকমান্ড লাইন সরঞ্জামটি বেশিরভাগ ক্ষেত্রে ওপেনএসএসএল লাইব্রেরি পরীক্ষার জন্য একটি প্রমাণ-ধারণা of এই প্রশ্নের সঠিক উত্তরটি হ'ল জিপিজি বা কিছু ধনুক যেমন 7z
গিলস

1
আমি যুক্ত করতে চাই যে openssl encআপনার যদি দুর্বল পাসওয়ার্ড থাকে তবে এটি নিরাপদ নয়। আমি এর আগে নির্দিষ্ট কিছু ব্যবহারের openssl encপরামর্শ দিয়েছিলাম তবে এখন gpgপরিবর্তে এটি ব্যবহারের পরামর্শ দিচ্ছি কারণ এটি আরও ভালভাবে কেডিএফ ব্যবহার করে। এই উত্তর দেখুন ।
লেকেনস্টেইন

2
-1 নিম্ন-স্তরের ওপেনএসএসএল ব্যবহারের প্রস্তাব দেওয়ার জন্য। এটি কোনও এইচএমএসি কার্যকারিতা সরবরাহ করে না এবং @ লিকেনস্টেইন উল্লেখ করেছেন যে, এতে যথাযথ কেডিএফের অভাব রয়েছে।
gertvdijk

26

আমি 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

আপনি AES256 কে ডিফল্ট করতে যোগ cipher-algo AES256করতে ~/.gnupg/gpg.confপারেন। ( ম্যানপেজ অনুযায়ী এটি CAST5 )


আপনি এটিও ব্যবহার করতে পারেন AES(যার অর্থ AES-128)। AES-128 সামান্য দ্রুত এবং কম সুরক্ষিত নয়।
গিলস 12

2
+1 টি। আরও মনে রাখবেন যে এএনএস ব্যবহার করার সময় GnuPG আপনার জন্য বার্তা প্রমাণীকরণ (এইচএমএসি )ও সরবরাহ করে (যা ওপেনএসএসএল লেখার সময় সর্বাধিক উত্সাহিত উত্তর হবার নয়)। পটভূমি তথ্য: superuser.com/a/633716/157409
জার্মটভিডিজক

আমি কীভাবে gpgপাসওয়ার্ডটি ক্যাচ করা থেকে বিরত রাখতে পারি ?
ব্যবহারকারী 76284

16

7z (যখন পাসওয়ার্ড বিকল্পটি ব্যবহার করা হয়) একটি 256 বিট এইএস এনক্রিপশন ব্যবহার করে (SHA256 কী প্রসারিত সহ )।

এটা (ইনস্টল p7zip-full), ডান ফাইল বা ডিরেক্টরি আপনাকে এনক্রিপ্ট করতে চান তার উপর ক্লিক করুন, এবং পছন্দ করে নিন কম্প্রেস , .7z এবং অন্যান্য অপশন / পাসওয়ার্ড

এখানে চিত্র বর্ণনা লিখুন

ডিক্রিপশন-এর জন্য, .7z ফাইলটিতে ডান ক্লিক করুন এবং এখানে এক্সট্রাক্ট চয়ন করুন


1
আপনি কীভাবে 7 জি এর জন্য জিইউআই চালু করবেন?
m0skit0

4

aescrypt

সংযুক্ত ওয়েবসাইটটিতে একটি মুক্ত-উত্স 256-বিট এএস এনক্রিপ্ট / ডিক্রিপ্ট সরঞ্জাম রয়েছে এবং এটি মাল্টিপ্লাটফর্ম - ম্যাকও, উইন্ডোজ, লিনাক্স এবং জাভার মাধ্যমে অন্যান্য others

এনক্রিপ্ট করুন: aescrypt -e <file>

ডিক্রিপ্ট করুন: aescrypt -d <file>

আপনি সিনট্যাক্স ব্যবহার করে আপনার হোম ফোল্ডারটি ব্যাকআপ এবং এনক্রিপ্ট করতে পারেন:

tar -cvf - /home/<home_folder> | aescrypt -e -p <password_message> - > backup.tar.aes

উবুন্টু ইনস্টলেশন

উত্সটি ডাউনলোড এবং নিষ্ক্রিয় করুন

make
sudo make install

অন্যান্য প্ল্যাটফর্মগুলি

ওয়েবসাইট থেকে বাইনারি বা উত্স-কোড ডাউনলোড করুন।


3

আমি যে পরামর্শ দিয়েছি তার অনেকগুলি ইতিমধ্যে এই থ্রেডে রেখে দেওয়া হয়েছে। মূলত, কোনও ফাইল বা স্ক্রিপ্ট এনক্রিপ্ট করার বিষয়ে ওপেনসেলটি সত্যই সহজতম উপায়। যাইহোক, আমি AES-256 ব্যবহারের বিরুদ্ধে সতর্কতা প্রদর্শন করব কারণ এটি কিছু প্ল্যাটফর্মে ওপেনসেলের সমস্ত সংস্করণে পাওয়া যায় না । বেশিরভাগ নতুন ওএস ... অর্থাৎ লিনাক্স এটি রয়েছে। তবে এআইএক্স 5.3 এর মতো অন্যরাও (আমি এইচপি-ইউএক্সও মনে করি না)। যদি আপনি নিজের প্ল্যাটফর্ম বা স্ক্রিপ্টটি বিভিন্ন প্ল্যাটফর্ম জুড়ে ব্যবহার করতে চান, তবে আমি দৃ strongly ়ভাবে AES-128 ব্যবহার করার পরামর্শ দিচ্ছি কারণ এটি সর্বত্র পাওয়া যায়।

আপনি কীভাবে AES-128 ব্যবহার করে একটি ফাইলকে "দ্রুত এবং সহজেই" এনক্রিপ্ট করতে পারেন?

Www.ShellScrypt.com এর মতো একটি সাইট শেল স্ক্রিপ্টগুলি এনক্রিপ্ট করার জন্য ওপেনসেল এইএস -128 বেশ তীব্রভাবে ব্যবহার করে এবং তারপরে স্ক্রিপ্টগুলির এনক্রিপ্ট হওয়া অনুলিপিগুলি কার্যকর করে তোলে। আপনাকে যা করতে হবে তা হ'ল স্ক্রিপ্টটি পেস্ট করতে হবে এবং আপনার জন্য একটি জিপ ফাইল তৈরি করা হবে। এই জিপ ফাইলটিতে আপনার ফাইলের এনক্রিপ্ট করা (এবং যদি এটি স্ক্রিপ্ট হয় তবে এক্সিকিউটেবল) থাকে contain এটি আপনাকে " সহজেই " এবং " সুবিধামতভাবে " ফাইল / স্ক্রিপ্ট এনক্রিপ্ট করার অনুমতি দেয় আপনার প্রতিটি সিস্টেমে কোনও প্যাকেজ বা মডিউল প্রয়োজনীয়তা পূরণ না করে আপনি স্ক্রিপ্টটি ব্যবহার করতে চান বা ওপেনএসএল কমান্ডের বিভিন্ন জটিল এবং বিভ্রান্তিমূলক উদ্দীপনা চালাতে চান।

নীচে দেখানো হল একটি বেসিক এনক্রিপ্ট / ডিক্রিপ্ট ওপেনসেল কমান্ড যা 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:~$

2
"শেলসক্রিপ্ট.কম" ডাউন এবং আউট (উফ: সাইটটি চলে গেছে) শিরোনাম দিতে কেবল একটি মন্তব্য রেখেছি।
ই-সুশি

1

স্টেফানো প্যালাজোর উত্তরে যোগ করে, আমি একটি সামান্য বাশ ফাংশন তৈরি করেছি যা বেস 64 কমান্ডের অনুরূপ কাজ করে।

এটি aes256 কোনও ফাইল এনক্রিপ্ট করবে এবং তারপরে বেস 64 এটি এনকোড করবে। বিপরীতটি করার সময়, এটি 6464 ডিকোড, ডিক্রিপ্ট এবং তারপরে মূল প্লেইন টেক্সটটি স্পিট করবে।

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.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.