উত্তর:
openssl
এটি আপনার জন্য করতে পারে এবং এটি সমস্ত ডিফল্টরূপে ওএস এক্সের মাধ্যমে ইনস্টল করা হয়েছে; ডারউইনপোর্টগুলি ইনস্টল করার দরকার নেই।
$ openssl base64 -in <infile> -out <outfile>
-in
বিকল্প ছাড়া স্টিডিন থেকে পড়া
openssl base64 < path/to/file.png | tr -d '\n' | pbcopy
বা ব্যবহার cat path/to/file.png | openssl base64 | tr -d '\n' | pbcopy
করতে এবং লাইন বিরতি ছাড়াই ক্লিপবোর্ডে বেস 64-এনকোডড আউটপুট অনুলিপি করুন।
-d
ডিকোড করতে একটি পতাকা ব্যবহার করুন।
openssl base64 -e <<< ram
এবং ডিকোড করতে:openssl base64 -d <<< cmFtCg==
openssl base64 [-e] -A
করেন না । + @ ডিকোডে ডিকনড যদি ইনপুটটিতে বেশিরভাগ 76 76 টি অক্ষরে নিউলাইন না থাকে, তবে আমি সবেমাত্র জানিয়েছি এমন নো-নিউলাইনস কেস সহ, আপনার প্রয়োজন হবে -d -A
বা আপনার কোনও ত্রুটি বার্তা ছাড়াই নিখোঁজ বা দুর্নীতিগ্রস্থ ডেটা পাবেন (যদিও এখানে কোনও মুলতুবি বাগ রিপোর্ট রয়েছে যা এটির একটি স্থির হতে পারে)।
openssl base64 -e <<< ram
আসলে একটি পিছনের লাইনের ফিড সহ 4 টি বাইট এনকোড করে; দেখতে hexdump <<< ram
।
ওপেনসেল আরও সংক্ষেপে ব্যবহার করা যেতে পারে:
echo -n 'input' | openssl base64
[ইকো-এন -> অবশ্যই ব্যবহার করা উচিত, অথবা নতুন লাইন চরিত্র সহ এনকোডিং করা হবে]
অথবা
openssl base64 <ENTER> [type input] <CTRL+D>
openssl base64 <<< input
base64
ছাড়া ব্যবহার করুন openssl
। যেভাবেই হোক, আমাকে দুবার Ctrl + D টিপতে হবে। আর হুঁশিয়ার @Garret: ব্যাশ এ, সহ বা ছাড়া openssl
, openssl base64 <<< superuser
এবং openssl base64 <<< "superuser"
ভুল করে উত্পাদ c3VwZXJ1c2VyCg==
"এখানে স্ট্রিং" তাহলে এখনও একটি লাইন ফিড অন্তর্ভুক্ত হিসাবে! ( দৃশ্যত কেবল বাশ নয়, zsh, ksh এবং yash এও। দেখুন See hexdump <<< superuser
বেস 64 ফলাফলটি হওয়া উচিত c3VwZXJ1c2Vy
))
echo -n
আপনার যদি নতুন লাইনের প্রয়োজন না হয় তবে পছন্দ করা হয়। এটি অবশ্যই সচেতন হওয়ার মতো কিছু।
printf
এর জায়গায় ব্যবহার করতে পারেনecho -n
ব্যবহার করার চেষ্টা করুন:
base64 -i <in-file> -o <outfile>
এটি ওএস এক্স-এ ডিফল্টরূপে পাওয়া উচিত should
--decode
করুন Base64- থেকে স্বাভাবিক প্রক্রিয়া বিপরীত।
openssl base64
। ধন্যবাদ!
base64
কমান্ডটি আমার ওএস এক্স ১০.৯.৪ এ ডিফল্টরূপে উপলব্ধ।
আপনি ব্যবহার করতে পারেন base64 <<< string
এবং base64 -D <<< string
এনকোড এবং টার্মিনালে একটি স্ট্রিং ডিকোড করতে, অথবা base64 -in file
এবং base64 -D -in file
এনকোড এবং একটি ফাইল ডিকোড করতে।
Invalid characer in input stream
যখন ব্যবহার <<<
... আমি সঙ্গে চেষ্টা করেছি "
, '
স্ট্রিংয়ের কিছুই।
পাইথনটি ওএস এক্সের সাথে ডিফল্টরূপে সরবরাহ করা হয়, আপনি এটি নীচের হিসাবে ব্যবহার করতে পারেন:
$ echo FOO | python -m base64
Rk9PCg==
$ echo Rk9PCg== | python -m base64 -d
FOO
অথবা ব্রিউ ( ) এর coreutils
মাধ্যমে ইনস্টল করুন যা কমান্ড সরবরাহ করবে :brew install coreutils
base64
$ echo FOO | base64
Rk9PCg==
$ echo Rk9PCg== | base64 -d
FOO
গতির ক্ষেত্রে, আমি ওপেনসেল ব্যবহার করব তারপরে পার্ল এবং ইউয়েনকোডের পরে। বহনযোগ্যতার ক্ষেত্রে আমি ইউইনকোড ব্যবহার করব এবং তারপরে পার্ল ওপেনসেল ব্যবহার করবে (যদি আপনি অন্যান্য ইউনিক্সের যতটা সম্ভব স্টক প্ল্যাটফর্মের মতো কোডটি পুনঃব্যবহার করার বিষয়ে চিন্তা করেন)। সতর্কতা অবলম্বন করুন কারণ সমস্ত ইউনিক্স রূপগুলি-এম সুইচ সমর্থন করে না (আইরিস এআইএক্স করে, এইচপি / ইউএক্স করে, সোলারিস দেয় না)।
$ time perl -MMIME::Base64 -e 'undef $/;while(<>){print encode_base64($_);}' \
> out.jpg 1>filename.b64
real 0m0.025s
$ time uuencode -m -o filename.b64 out.jpg filename_when_uudecoded.txt
real 0m0.051s
$ time openssl base64 -in out.jpg -out filename.b64
real 0m0.017s
আরএফসি 1521 দ্বারা উল্লিখিত বেস বেস 64 অনুযায়ী ইউউনকোড ফাইল_ইন টেক্সট -m স্যুইচটি ব্যবহার করুন এবং ফাইলনাম.বি 64 এ লিখুন (ফাইলের নাম_ওহেন_ইউডিকোড.ডেক্সট যখন ডিকোডড থাকে তখন ডিফল্ট ফাইলের নাম হিসাবে):
uuencode -m -o filename.b64 file_in.txt filename_when_uudecoded.txt
STDIN উদাহরণ:
cat file_in.txt | uuencode -m -o filename.b64 filename_when_uudecoded.txt
ম্যাকোজে আমি সর্বদা ব্যবহার করি:
echo -n "STRING" | base64
-n হ'ল লাইনের শেষে একটি নতুন লাইন অক্ষর এড়ানো।
পাইথন আজকাল সমস্ত ম্যাকের উপর পূর্বনির্ধারিত আসে।
টার্মিনাল রান python
(বা আইপিথন ) এ।
একটি ফাইল এনকোড করুন:
base64data = open('myfile.jpg','rb').read().encode('base64')
open('myfile.txt','w').write(base64data)
একটি ফাইল ডিকোড করুন:
data = open('myfile.txt').read().decode('base64')
open('myfile.jpg','wb').write(data)
অবশ্যই, উভয় ক্রিয়াকলাপই অননিলায়ারে রূপান্তরিত হতে পারে তবে এই পদ্ধতিটি আরও পঠনযোগ্য।
## encode to base64 (on OSX use `-output`)
openssl base64 -in myfile.jpg -output myfile.jpg.b64
## encode to base64 (on Linux use `-out`)
openssl base64 -in myfile.jpg -out myfile.jpg.b64
## decode from base64 (on OSX `-output` should be used)
openssl base64 -d -in myfile.jpg.b64 -output myfile.jpg
## decode from base64 (on Linux `-out` should be used)
openssl base64 -d -in myfile.jpg.b64 -out myfile.jpg
ছাড়াই -out
/ স্টাডাউটে -output... filename
মুদ্রণ করবে O
ওএসএক্স এবং উবুন্টুতে অন্য একটি উটব ইউটিলিটি উপস্থিত রয়েছে:
## encode to base64
base64 < myfile.jpg > myfile.jpg.b64
## decode from base64 (OSX) (note the uppercase 'D')
base64 -D < myfile.jpg.b64 > myfile.jpg
## decode from base64 (Linux) (note the lowercase 'd')
base64 -d < myfile.jpg.b64 > myfile.jpg
uuencode -m [-o output_file] [file] name
কোথায় নাম এনকোড হেডারের মধ্যে প্রদর্শন করে নাম।
উদাহরণ:
cat docbook-xsl.css | uuencode -m docbook-xsl.css
অথবা
uuencode -m -o docbook-xsl.css.b64 docbook-xsl.css docbook-xsl.css
uuencode
এনকোডিং এর মতো নয়base64
কোনও কারণে, echo -n <data> | openssl base64
আমার বেস 64 ডেটার মাঝখানে একটি নতুন লাইন যুক্ত হয়েছে। আমি ধরে নিলাম এটি ছিল কারণ আমার বেস 64 ডেটা সত্যিই দীর্ঘ ছিল।
ব্যবহার echo -n <data> | base64
এনকোড এবং echo -n <base64-ed data> | base64 -D
কাজ জরিমানা ডিকোড করতে।
উপরের স্টিভ ফোলির উত্তর ছাড়াও, স্ট্যান্ডিন মোডে এনক্রিপ্ট করার সময় অতিরিক্ত নিউলাইনগুলি পাস করা এড়াতে, কোনও নতুন নিউলাইন ছাড়াই ইনপুট শেষ করতে দুবার CTRL + D টিপুন। আউটপুট একই লাইনের ঠিক পরে দেখাবে।
উদাহরণ স্বরূপ:
$ openssl base64 [Enter]
input<CTRL+D><CTRL+D>aW5wdXQ=
$
বিকল্পভাবে, আপনি ব্যবহার করতে পারেন printf
:
$ printf 'input' | openssl base64
aW5wdXQ=
$
পার্ল প্লাস এমটাইম :: বেস 64 রয়েছে:
perl -MMIME::Base64 -e 'undef $/;while(<>){print encode_base64($_);}'
এটি প্রাক ইনস্টলড আসে। আপনি কমান্ড লাইনে পৃথক ফাইল নির্দিষ্ট করতে পারেন (বা স্ট্যান্ডার্ড ইনপুটটিতে ডেটা সরবরাহ করতে পারেন); প্রতিটি ফাইল পৃথকভাবে এনকোড করা হয়। আপনি এটি করতে পারেন:
perl -i.txt -MMIME::Base64 -e 'undef $/;while(<>){print encode_base64($_);}' file1
এটি ফাইল 1 কে ফাইল 1.txt এ ব্যাক আপ করে এবং মূল ফাইলের উপরে বেস -ed৪ এনকোডড আউটপুট লিখে writes
একটি সাধারণ নোডজেএস সংস্করণ:
node -e "process.stdout.write(new Buffer(process.argv[1]).toString('base64'))" "Hello world!"
openssl
(এবং এখন base64
) হিসাবে এটি উত্তম উত্তর বলে আমি মনে করি না ।
recode আপনার জন্য কৌশল করা উচিত
recode ../b64 < file.txt > file.b64
পুনরায় কোড ম্যাকপোর্টের মাধ্যমে ওএস এক্সের জন্য উপলব্ধ ।
base64
কমান্ড।
যদি আপনি কোনও ফন্ট ফাইলকে এনকোডিং বেস 64 করে থাকেন তবে আপনি এটি করতে পারেন:
base64 my-webfont.ttf > my-webfont.b64.ttf.txt
আমি এটি সর্বদা একটি ম্যাক (10.10) এ ব্যবহার করি।
দ্রষ্টব্য : কোনও লাইন ব্রেক হবে না।
বেস 64 হিসাবে একটি ফাইল এনকোড করতে আমরা ক্রস-প্ল্যাটফর্ম শেল কমান্ডগুলির একটি তালিকা সংকলন করেছি। নিম্নলিখিত কমান্ডগুলি একটি ইনপুট ফাইল নেয় ( deploy.key
উদাহরণগুলিতে নামযুক্ত ) এবং কোনও নিউলাইন মোড়ানো ছাড়াই এটিকে বেস 64 এ রূপান্তর করে। বেস 64 আউটপুট স্টার্টআউট মাধ্যমে টার্মিনালে মুদ্রিত হয়।
# For systems with openssl
openssl base64 -A -in=deploy.key
# For systems with Python (2 or 3) installed
python -c "import base64; print(base64.standard_b64encode(open('deploy.key', 'rb').read()).decode())"
# For Windows or Linux systems that have the GNU coreutils base64 command
base64 --wrap=1000000 deploy.key
# For macOS systems
base64 --break=1000000 deploy.key
আউটপুটটিকে কোনও ফাইলে পুনর্নির্দেশ করতে, সংযোজন > base64-encoded.txt
(আপনার পছন্দের কোনও ফাইলের নাম ব্যবহার করে)।
এই কমান্ডগুলি এই টানার অনুরোধের অংশ হিসাবে প্রোটোটাইপ করা হয়েছিল যেখানে আমরা নতুন লাইনগুলি সরাতে একটি এসএসএইচ প্রাইভেট কী বেসড এনকোড করতে ক্রস-প্ল্যাটফর্ম শেল কমান্ড চেয়েছিলাম।
base64 -d
বাbase64 -D
আপনার অপারেটিং সিস্টেমের উপর নির্ভর করে। ওএসএক্স ব্যবহার করে-D
।