জাভাস্ক্রিপ্ট এইএস এনক্রিপশন [বন্ধ]


109

জাভাস্ক্রিপ্টে AES 256-বিটস এনক্রিপশনের জন্য কি কোনও গ্রন্থাগার পাওয়া যায়?


ক্রিপ্টো- জেএস <স্ক্রিপ্ট src = " cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rolups/… > <script> var এনক্রিপ্টডএইএস = ক্রিপ্টোজেএস.এইএস.এনক্রিপ্ট ব্যবহার করে আপনার এসইএস এনক্রিপশনের জন্য যা দরকার তা এখানে is ("বার্তা", "পাসফ্রেজ"); ভেরি ডিক্রিপ্টেড = ক্রিপ্টোজেএস.এইএস.ডেক্রিপ্ট (এনক্রিপ্টডএইএস.সেট্রিং (), "পাসফ্রেজ"); কনসোল.লগ ("এনক্রিপ্টড:", এনক্রিপ্টডএইএস.টোস্ট্রিং ()); কনসোল.লগ ( "ডিক্রিপ্ট:", decrypted.toString (CryptoJS.enc.Utf8)); </ স্ক্রিপ্ট>
হরি দাস

উত্তর:


66

জেএসএইএস জাভাস্ক্রিপ্টে এএস এর শক্তিশালী প্রয়োগ implementation http://point-at-infinity.org/jsaes/


32
জেএসএইএস জিএনইউ জিপিএল এর আওতায় লাইসেন্সযুক্ত - তাই এটি কিছু প্রকল্পের জন্য ব্যবহারযোগ্য নয়।
রবার্ট

11
এটি এখন বেশ কার্যকর এবং সমৃদ্ধ কোড. google.com/p/crypto-js
ডেভিড কিয়েরানস

2
@ হ্যাপিডেভলপার ভাল, না এর জন্য লাইসেন্সটিকে দোষ দিবেন না। লেখক ভুল লাইসেন্সটি বেছে নিয়েছেন, কারণ জিপিএল পাঠাগারগুলির জন্য উপযুক্ত নয়।
ইনটা

4
এটি "বিনা মূল্যে বিনামূল্যে", তবে আপনি যদি জিপিএল ব্যতীত অন্য কোনও কারণে আপনার ফলস্বরূপ পণ্যটি মুক্তি দিতে চান তবে আপনি এটি ব্যবহার করতে পারবেন না।
কার্টিস

3
জেএসএইএস একটি ভাল শুরুর পয়েন্ট তবে এটি কেবল 16 বাইট ডেটা এনক্রিপ্ট করতে ব্যবহার করা যেতে পারে। আপনি যদি ডেটার বড় ব্লকটি এনক্রিপ্ট করতে চান তবে অন্তর্নিবেশকরণ ভেক্টর, এনক্রিপ্ট মোড (সিবিসি বা অন্যান্য ...), প্যাডিং বাস্তবায়নের জন্য আপনাকে এটিকে নিজেকে প্রসারিত করতে হবে।
পাওলো

35

এখানে এমন একটি প্রদর্শনী পৃষ্ঠা যা ধীর গতি ব্যবহার করে।

ধীরে ধীরে ব্যবহার করা সহজ ছিল। যৌক্তিকভাবে ডিজাইন করা হয়েছে। যুক্তিসঙ্গত ওও প্যাকেজিং। IV এবং এনক্রিপশন মোডের মতো নোবস এবং লিভারগুলিকে সমর্থন করে। .NET / C # এর সাথে ভাল সামঞ্জস্য। নাম জিহ্ব-ইন-গাল; একে " ধীর AES" বলা হয় কারণ এটি সি ++ তে প্রয়োগ করা হয়নি। তবে আমার পরীক্ষায় এটি কার্যকরীভাবে ধীর ছিল না।

এটিতে ইসিবি মোড নেই। এছাড়াও একটি সিটিআর মোডের অভাব রয়েছে, যদিও আপনি খুব সহজেই একটি ইসিবি মোড দিয়ে তৈরি করতে পারেন, আমার ধারণা।

এটি সম্পূর্ণরূপে এনক্রিপশন উপর দৃষ্টি নিবদ্ধ করা হয়। একটি দুর্দান্ত পরিপূরক শ্রেণি যা জাভা স্ক্রিপ্টে আরএফসি 2898 -র সাথে অনুগামী পাসওয়ার্ড-ভিত্তিক কী ডেরাইভেশন করে, আনন্দম থেকে পাওয়া যায় । এই জুটির লাইব্রেরিগুলি এনালগ। নেট ক্লাসগুলির সাথে ভাল কাজ করে। ভাল ইন্টারপ। যদিও, স্লোএইএসের বিপরীতে, কীগুলি উত্পন্ন করার সময় জাভাস্ক্রিপ্ট পিবিকেডিএফ 2 আরএফসি 2898 ডেরিভ বাইটস শ্রেণীর চেয়ে উল্লেখযোগ্যভাবে ধীর হয় ।

এটি আশ্চর্যজনক নয় যে প্রযুক্তিগতভাবে ভাল আন্তঃবিদ্যুত রয়েছে, তবে আমার কাছে মূল বিষয়টি ছিল স্লোএইএসস দ্বারা গৃহীত মডেলটি পরিচিত এবং সহজেই ব্যবহারযোগ্য। আমি অন্য কিছু জাভাস্ক্রিপ্ট লাইব্রেরি AES এর জন্য বুঝতে এবং ব্যবহার করা কঠিন হতে পেলাম। উদাহরণস্বরূপ, তাদের কয়েকটিতে আমি আইভি, বা মোড (সিবিসি, ইসিবি, ইত্যাদি) সেট করার জায়গাটি খুঁজে পাইনি। জিনিসগুলি যেখানে আমি তাদের প্রত্যাশা করিনি। SlowAES এর মতো ছিল না। সম্পত্তিগুলি যেখানে ছিল সেগুলি ঠিক ছিল। জাভা এবং .NET ক্রিপ্টো প্রোগ্রামিং মডেলগুলির সাথে পরিচিত হয়ে আমার পক্ষে বাছাই করা সহজ ছিল।

আনন্দমের পিবিকেডিএফ 2 তেমন পর্যায়ে ছিল না। এটি ডেরিভাইটস ফাংশনে কেবলমাত্র একটি কলকে সমর্থন করেছে, সুতরাং আপনার যদি পাসওয়ার্ড থেকে কী এবং IV উভয়ই পেতে হয় তবে এই গ্রন্থাগারটি অপরিবর্তিত থাকবে না। কিছুটা সামান্য পরিবর্তন, এবং এটি সেই উদ্দেশ্যে ঠিক কাজ করছে।

সম্পাদনা : আমি একত্র করা একটি উদাহরণ প্যাকেজিং এর SlowAES এবং Anandam এর একটি পরিমার্জিত সংস্করণ PBKDF2 উইন্ডোজ স্ক্রিপ্ট উপাদান মধ্যে। পাসওয়ার্ড থেকে উদ্ভুত কী সহ এই এইএস ব্যবহার করা .NET রিজান্ডেলম্যানেজড শ্রেণীর সাথে ভাল ইন্টারপ দেখায়।

সম্পাদনা 2 : ডেমো পৃষ্ঠাটি দেখায় যে কীভাবে কোনও ওয়েব পৃষ্ঠা থেকে এই এইএস এনক্রিপশন ব্যবহার করতে হয়। .NET এ সমর্থিত একই ইনপুটগুলি (iv, কী, মোড, ইত্যাদি) ব্যবহার করা আপনাকে .NET রিজান্ডেল শ্রেণীর সাথে ভাল ইন্টারপ দেয়। সেই পৃষ্ঠার জাভাস্ক্রিপ্ট পেতে আপনি "দেখার উত্স" করতে পারেন।

EDIT3
দেরিতে সংযোজন: জাভাস্ক্রিপ্ট ক্রিপ্টোগ্রাফি ক্ষতিকারক হিসাবে বিবেচিত। পড়া মূল্যবান।



1
আমি একটি বৈধ ব্যবহার-কেস দেখছি - এইচটিএমএল 5 অ্যাপ্লিকেশনটিতে সমস্ত ফাইল স্থানীয়ভাবে সঞ্চিত রয়েছে। যদি স্থানীয় ফাইলগুলি হাইজ্যাক করা যায় তবে আপনার যে কোনও ক্ষেত্রে ডুমড করা ;-)।
নিউজ

8
এডিট লিংক সম্পর্কে, এটি একটি নিবন্ধের বোকা টুকরো ... এর বিবৃতি অর্ধেক সম্পূর্ণ মিথ্যা!
মিমি

2
এলোমেলো কী সমস্যাটি ব্যবহারকারীকে মাউস সরিয়ে এবং সত্যিকারের র্যান্ডম জেনারেটর হিসাবে কীগুলি প্রবেশ করিয়ে সমাধান করা যেতে পারে।
মিমি

2
বিক্ষোভ পৃষ্ঠার লিঙ্কটি নষ্ট হয়ে গেছে বলে মনে হচ্ছে।
শান

26

AES এনক্রিপশনের জন্য আমার অনুসন্ধানগুলিতে আমি স্ট্যান্ডফোর্ডের কিছু শিক্ষার্থীর কাছ থেকে এটি পেয়েছি। সেখানে দ্রুততম হওয়ার দাবি রয়েছে। সিসিএম, ওসিবি, জিসিএম এবং ব্লক এনক্রিপশন সমর্থন করে। http://crypto.stanford.edu/sjcl/


আমি কি সম্পর্কে কথা বলছি না!
মিমি

5
ডকুমেন্টেশনের অভাব রয়েছে এবং এটি ব্যবহার করা শক্ত। কী কী দৈর্ঘ্য পরিবর্তন করবেন? আমি দস্তাবেজগুলি খুঁজে পেয়েছি এবং উপযুক্ত সময়ে এটি বের করতে পারি না। এছাড়াও আপনি যখন কোনও কিছু এনক্রিপ্ট করেন তখন কী-মান জোড়াগুলির একটি অ্যারে ফিরে পাওয়া যায়, তবে ডক্সটি এগুলি ব্যাখ্যা করে বলে মনে হয় না। অস্থাবর টাইপের লাইব্রেরিটি ব্যবহার করে শেষ করেছি।
CpnCrunch

এবং এটি অ্যাসিঙ্ক নয় তাই যদি আপনি উদাহরণস্বরূপ AES-CBC এর সাথে কিছু দীর্ঘ স্ট্রিং এনক্রিপ্ট করে বা ডিক্রিপ্ট করে থাকেন তবে এটি
ইউআইকে অবরুদ্ধ করে

12

গুগলিং "জাভাস্ক্রিপ্ট এইএস" এর বেশ কয়েকটি উদাহরণ পাওয়া গেছে। পপ আপ করা প্রথমটিটি অ্যালগরিদম ব্যাখ্যা করার পাশাপাশি একটি সমাধান সরবরাহ করার জন্য ডিজাইন করা হয়েছে:

অস্থাবর প্রকারের স্ক্রিপ্টসমূহ: এইএস


1
আমি কীভাবে সেই লাইব্রেরিতে আইভি সেট করতে পারি তা বুঝতে পারি না। এছাড়াও এটি খুব ওও নয়।
চিজো

কাউন্টার মোডে আইভির সমতুল্য ননস। এই বাস্তবায়নটি আরও ওও হিসাবে সংশোধন করা হয়েছে। এতে কেবলমাত্র কাউন্টার (সিটিআর) অপারেশন মোড অন্তর্ভুক্ত থাকে।
ChrisV

এটিতে কোনও ইসিবি মোড না থাকলে এগুলি বেশ ভালভাবে কাজ করে।
CpnCrunch 21

10

এই পোস্টটি এখন পুরানো, তবে ক্রিপ্টো-জেএস এখন সম্ভবত সম্পূর্ণ সম্পূর্ণ জাভাস্ক্রিপ্ট এনক্রিপশন লাইব্রেরি হতে পারে।

CryptoJS জাভাস্ক্রিপ্ট বাস্তবায়িত ক্রিপ্টোগ্রাফিক আলগোরিদিম একটি সংগ্রহ। এটিতে নিম্নোক্ত সাইফারগুলি অন্তর্ভুক্ত রয়েছে: এইএস -128, এইএস-192, এইএস-256, ডিইএস, ট্রিপল ডিইএস, খরগোশ, আরসি 4, আরসি 4 ড্রপ এবং হ্যাশার: এমডি 5, রিপেমড -160, এসএএ -16, এসএএএ -56, এসএএচএ 223, 256, 384 বা 512 বিট সহ -3।

আপনি তাদের কুইক-স্টার্ট গাইডটি দেখতে চাইতে পারেন যা নীচের নোড.জেএস পোর্টের জন্যও রেফারেন্স।

নোড-ক্রিপ্টোজস-এসস হ'ল নোপ.জেএস ক্রিপ্টো- জেএসের বন্দর


1
দুর্ভাগ্যক্রমে ডকুমেন্টেশনের অভাব রয়েছে। এটি কেবল একটি 'দ্রুত শুরু' গাইড রয়েছে বলে মনে হয়। পুরো ডকুমেন্টেশন কোথায়? এটি বলে যে এটি একাধিক কী দৈর্ঘ্য সমর্থন করে তবে কীভাবে এটি করা যায় তার কোনও নথি নেই।
CpnCrunch

@ সিপিএনক্রাঞ্চ: সম্পূর্ণ এপিআই ডক অনলাইন নয়, তবে কোডটি পুরো জাভাদোক এপিআই হিসাবে মন্তব্য করেছে। এবং আপনি এটি উত্পাদন করতে পারেন। সাইফার-কোর.জেএস উত্স সম্পর্কে মন্তব্যগুলি পড়ুন আপনি সিফারের মূল আকার এবং সিফারের চতুর্থ আকার খুঁজে পাবেন।
মার্জ

অদ্ভুত, যখন আমি এনক্রিপ্ট করি এবং ফিরে ডিক্রিপ্ট করি, পাঠ্যগুলি আলাদা হয়
ওএমজিপিওপি

ওপেনসেল ব্যবহারের কারণে কিছু বিবাদ রয়েছে
ভ্লাদ

9

সম্প্রতি আমার জাভাস্ক্রিপ্ট এবং পাইথনের মধ্যে কিছু এনক্রিপশন / ডিক্রিপশন আন্তঃক্রিয়া সম্পাদন করার প্রয়োজন হয়েছিল।

বিশেষ করে ...

১) জাভাস্ক্রিপ্টে এনক্রিপ্ট করতে এএসএস ব্যবহার করে এবং পাইথনে ডিক্রিপ্ট করুন (গুগল অ্যাপ ইঞ্জিন) ২) জাভাস্ক্রিপ্টে এনক্রিপ্ট করতে আরএসএ ব্যবহার করে এবং পাইথনে ডিক্রিপ্ট করুন (গুগল অ্যাপ ইঞ্জিন) ৩) পাইক্রিপ্টো ব্যবহার করে

আমি ওয়েবের চারপাশে ভাসমান আরএসএ এবং এইএস এর প্রচুর এবং প্রচুর সংস্করণ পেয়েছি এবং সেগুলি তাদের পদ্ধতির মধ্যে পৃথক ছিল তবে জাভাস্ক্রিপ্ট এবং পাইথন আন্তঃআযোগিতার শেষের কোনও ভাল উদাহরণ আমি পাইনি।

অবশেষে আমি এমন কিছু একসাথে বাঁধতে সক্ষম হয়েছি যা প্রচুর পরীক্ষা এবং ত্রুটির পরেও আমার প্রয়োজন অনুসারে উপযুক্ত।

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

যদিও আমি এটি লিঙ্ক দিয়ে এখানে অন্তর্ভুক্ত করব যদি এটি একই জিনিস সম্পাদন করার প্রয়োজন হয় তবে অন্যদের জন্য এটি কিছুটা কার্যকর হবে।

http://www.ipowow.com/files/aesrsademo.tar.gz

এবং দেখুন ডেমো এ RSA-AES-ডেমো বিন্দু appspot ডট কম

সম্পাদনা করুন: ব্রাউজার কনসোল আউটপুটটি দেখুন এবং ডেমোতে কী চলছে তার কিছু ইঙ্গিত এবং দরকারী বার্তা পেতে উত্স দেখুন

সম্পাদনা: উত্সটিতে খুব পুরানো এবং অবিচ্ছিন্ন লিঙ্কটি আপডেট হয়েছে

https://sestertii.com/files/aesrsademo.tar.gz


1
এই জন্য আপনাকে অনেক ধন্যবাদ! আমি আমার জীবনের জন্য আমার জাভাস্ক্রিপ্ট এএসস আমার পাইথন এএস এর সাথে কথা বলতে পারি না।
স্পাইপ

1
আপনার কোডটি 10 ​​মিনিটের মধ্যে যা করতে আমাকে সহায়তা করেছিল তা করতে আমি সারা রাত চেষ্টা করেছি (পাইক্রিপ্টো এবং অন্যদের সাথে)। তোমাকে অনেক ধন্যবাদ!
রেমি ভ্যানেরওয়েহেম

1
যে কোনও কারণে আমি আরএসএ সহজেই কাজ করতে পেরেছি তবে এইএস একটি রাজকীয় ব্যথা। এই জন্য আপনাকে ধন্যবাদ!!!
স্পিড প্লেন

1
লিঙ্ক ... পাওয়া গেল না!
machineaddict

7

আমার নিজের অভিজ্ঞতা থেকে বিচার করে, asmcrypto.js জাভাস্ক্রিপ্টে দ্রুততম AES বাস্তবায়ন সরবরাহ করে (বিশেষত ফায়ারফক্সে যেহেতু এটি asm.js সম্পূর্ণরূপে লাভ করতে পারে)।

রিডমি থেকে:

Chrome/31.0
SHA256: 51 MiB/s (9 times faster than SJCL and CryptoJS)
AES-CBC: 47 MiB/s (13 times faster than CryptoJS and 20 times faster than SJCL)

Firefox/26.0
SHA256: 144 MiB/s (5 times faster than CryptoJS and 20 times faster than SJCL)
AES-CBC: 81 MiB/s (3 times faster than CryptoJS and 8 times faster than SJCL)

সম্পাদনা: ওয়েব ক্রিপ্টোগ্রাফি এপিআই এখন অধিকাংশ ব্রাউজার বাস্তবায়িত ও প্রাথমিক সমাধান হিসেবে ব্যবহার করা উচিত যদি তোমরা কর্মক্ষমতা যত্নশীল। আইডি 11 মানকটির পূর্ববর্তী খসড়া সংস্করণটি প্রয়োগ করেছিল যা প্রতিশ্রুতি ব্যবহার করে নি aware

কিছু উদাহরণ এখানে পাওয়া যাবে:


আমি ক্রিপ্টোজেএস এর সাথে প্রায় 8 টি এমআইবি / এস পাচ্ছি। ভাবছেন কীভাবে এটি সম্পাদন করবে।
লোডেভিজক


3

ব্যবহার করে দেখুন asmcrypto.js - এটি সত্যিই দ্রুত।

পিএস: আমি একজন লেখক এবং আমি যদি আপনার কোনও প্রশ্নের উত্তর দিতে পারি। এছাড়াও আমি কিছু প্রতিক্রিয়া পেয়ে খুশি হব :)


asmcrypto.js দুর্দান্ত, তবে আইই 10 তে এটি ভাল কাজ করে না। এটি কখনও কখনও 1 মিনিটের বেশি বা কমপক্ষে 45 সেকেন্ডের জন্য ব্রাউজারটি ঝুলিয়ে রাখে। প্লাস, আমি বুঝতে পারি না, কেন আপনাকে গ্লোবাল ম্যাথ ফাংশনটি প্রতিস্থাপন করতে হবে? এখানে অনেকগুলি লাইব্রেরি রয়েছে যা এটি ব্যবহার করে।
ডিকহো

2
আপনি কীভাবে নিশ্চিত যে এটি সঠিকভাবে কাজ করছে তা সম্পর্কে আপনি মন্তব্য করতে পারেন? আইওউ: আপনি কীভাবে জানেন যে আপনি কার্যকরভাবে এএস প্রয়োগ করেছেন?
লোডেভিজক

IE10 এর কার্যকারিতা দুর্বল কারণ এটি asm.js মোটেও অনুকূলিত করে না। এছাড়াও এটিতে কিছুটা আলাদা জেআইটি প্যাটার্ন রয়েছে। আইই তে কোডটি ভালভাবে কাজ করা এটিকে ক্রোম এবং এফএফ এ স্তন্যপান করে তোলে। মনে করুন আমার সঠিক পছন্দ ছিল সংক্রান্ত Math.random একটি দীর্ঘ ছিল আলোচনা । কাঁচা ম্যাথ.রেন্ডম আউটপুট ফুটো প্রতিরোধের জন্য এই প্রয়োজনীয়তার জন্য খুব শীঘ্রই কথা বলা (তত্ত্ব অনুসারে পিআরএনজি সুরক্ষা হ্রাস করতে পারে)।
ভাইবারনফ



1

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

আপনি যদি কোনও কাস্টম ডোমেনে গুগল অ্যাপ ইঞ্জিনের জন্য এসএসএল খুঁজছেন, তবে wwwizer.com.comএকবার দেখুন

নীচের পোস্টে জাভাস্ক্রিপ্টের সাহায্যে কীভাবে নিরাপদ যোগাযোগ তৈরি করা যায় এবং কীভাবে ভুল হওয়া যায় তা ব্যাখ্যা করা হয়: এসএসএল / এইচটিটিপিএসের পরিবর্তে জাভাস্ক্রিপ্ট এনক্রিপশন মডিউলটি ব্যবহার করুন


1
নিশ্চিত হলেন না কেন এটি বিস্মৃত হওয়ার কারণে অবনমিত হয়েছিল, কারণ এটি একটি খুব ভাল বিষয় যে যে কেউ জাভাস্ক্রিপ্ট এনক্রিপশন বাস্তবায়নের কথা ভাবছেন তার খুব কমপক্ষে বিবেচনা করা উচিত। সম্মত।
জুলাই

এসএসএল এড়ানোর জন্য ক্লায়েন্ট সাইড ক্রিপ্টো ব্যবহার করা একটি পুরানো পয়েন্ট যা কিছু লোকেরা এর বিরুদ্ধে যাওয়ার কথা বলে: বাস্তবে এটি এইচটিটিপিএসে সুরক্ষা যোগ করতে পারে, প্যাসিভ আক্রমণগুলি এড়ানো বা ডাউনলোড অ্যাপ্লিকেশন এবং ব্রাউজারের এক্সটেনশনে ব্যবহৃত হতে পারে। আমি একবার দেখেছি এটি একবারে ভুলভাবে ব্যবহৃত হচ্ছে (আমার কলেজ, তবে তারা ইতিমধ্যে এটি ঠিক করে দিয়েছে) এবং বহুবার ডান ব্যবহার করেছে (ক্রিপ্টোক্যাট, উদাহরণ হিসাবে)।
গুস্তাভো রডরিগস



1

এখানে আমার জন্য কাজ করা একমাত্র সমাধান:

http://www.hanewin.net/encrypt/aes/aes.htm

এটি বেশ বেসিক, তবে ব্যবহার করা সহজ এবং ভালভাবে কাজ করে বলে মনে হচ্ছে।


আপনি কীভাবে আসলে এনক্রিপ্ট এবং ডিক্রিপ্ট ফাংশনটিকে কল করবেন?

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