এমন কোনও SHA-256 জাভাস্ক্রিপ্ট বাস্তবায়ন যা সাধারণত বিশ্বাসযোগ্য হিসাবে বিবেচিত হয়?


99

আমি একটি ফোরামের জন্য একটি লগইন লিখছি, এবং এটি সার্ভারে প্রেরণের আগে জাভাস্ক্রিপ্টে পাসওয়ার্ড ক্লায়েন্টের দিকটি হ্যাশ করা দরকার। আমি আসলে কোন SHA-256 বাস্তবায়নের উপর নির্ভর করতে পারি তা জানার জন্য আমার সমস্যা হচ্ছে। আমি প্রত্যাশা করছিলাম যে এখানে একরকম প্রামাণ্য স্ক্রিপ্ট থাকবে যা প্রত্যেকে ব্যবহার করেছেন তবে আমি তাদের নিজস্ব বাস্তবায়ন সহ বিভিন্ন প্রকল্পের বোঝা খুঁজে পাচ্ছি।

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

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


9
বিষয় বন্ধ করার জন্য নয়, তবে আপনি ক্লায়েন্টের পাশ দিয়ে কেন পাসওয়ার্ডটি হ্যাশ করছেন?
স্টিভ

4
পছন্দ করেছেন "আপনার নিজের রোল করবেন না" আপনার নিজস্ব অ্যালগরিদম উদ্ভাবন, অ্যালগরিদমের নিজস্ব বাস্তবায়ন লেখার জন্য, ক্রিপ্টো অ্যালগরিদমের শীর্ষে আপনার নিজস্ব প্রোটোকল বিকাশ করার জন্য, বা উচ্চ-স্তরের কোনও অ্যাবস্ট্রাকশন হিসাবে উপলভ্য হিসাবে ব্যবহার করে উপরোক্ত কিছু ব্যবহার করে। আপনি যদি ভাবেন যে আপনি নিরাপদে সুরক্ষিত থাকবেন এবং কেবল আঠার কোডটি লিখছেন তবে আপনার খারাপ সময় কাটবে।
স্টিফেন টাউসেট

26
আপনি যদি কোনও চ্যালেঞ্জ / প্রতিক্রিয়া প্রোটোকল ছাড়াই একটি হ্যাশ পাসওয়ার্ড ব্যবহার করেন তবে হ্যাশ পাসওয়ার্ডটি পাসওয়ার্ড এবং এটি পরিষ্কার টেক্সটে পাসওয়ার্ডটি স্থানান্তর করার মতোই।
dyer

26
@ ডিডিয়ার বিশেষত আমাদের সাইটের জন্য না হলে অন্য যে কোনও সাইটে তারা এটি ব্যবহার করতে পারে তার ব্যবহারকারীর প্লেইন টেক্সট পাসওয়ার্ডের সুরক্ষার কিছু মূল্য রয়েছে। এটি একটি সহজ ফিক্স যা সম্ভবত আমাদের সহায়তা করবে না তবে আমরা কোথাও স্ক্রু করা থাকলে ব্যবহারকারীকে সম্ভাব্যভাবে সহায়তা করতে পারে। এবং যেমনটি আমি বলেছিলাম, ক্লায়েন্টের অনুরোধ, আমি চাইলেও এটি সম্পর্কে কিছুই করতে পারি না।
jono

4
@ অ্যানোরভ আমি আমার মন পরিবর্তন করার চেয়ে আরও বেশি উন্মুক্ত :) তবে এই ক্ষেত্রে, আপনার বক্তব্য কীভাবে প্রযোজ্য তা আমি সত্যিই বুঝতে পারি না। আমরা পাসওয়ার্ডটি দুটিবার হ্যাশ করেছি: একবার সহজ SHA-256 এর সাথে ক্লায়েন্টের পাশে এবং একবার আরও কিছু দাবিযুক্ত সার্ভারের পাশে। প্রথমটি এমআইটিএম বা অনুরূপ ক্ষেত্রে প্লেটেক্সট রক্ষা করুন এবং দ্বিতীয়টি ব্রুটি সুরক্ষার জন্য। এমনকি যদি আপনি ডাটাবেস এবং অ্যাডমিন হ্যাশ পেয়ে থাকেন তবে লগইনটিকে বৈধতা দেওয়ার জন্য আপনি সরাসরি এটি ব্যবহার করতে পারবেন না।
jono

উত্তর:


114

স্বীকৃত: অনেক আধুনিক ব্রাউজারে এখন ক্রিপ্টো ক্রিয়াকলাপের জন্য প্রথম শ্রেণির সমর্থন রয়েছে। দেখুন ভিতালি Zdanevich এর উত্তর নিচে।


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

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

সুতরাং আপনার সুরক্ষা এখন আরও খারাপ কারণ আপনি পূর্বে একটি বিশ্বস্ত প্রকল্প হিসাবে নিজের উন্নতি যুক্ত করার সিদ্ধান্ত নিয়েছিলেন ।


32
আপনি যদি আবার সার্ভারে হ্যাশ করেন তবে এই অনুশীলনটি পুরোপুরি বৈধ।
নিক ব্রান্ট

13
@ নিকব্রান্ট যদি আপনি সার্ভারে হ্যাশ করেন তবে আপনি সংক্রমণিত পাসওয়ার্ড সংরক্ষণ করছেন না, তবে পাসওয়ার্ড হ্যাশ সংক্রমণের বিপরীতে আপনি মূল পাসওয়ার্ড প্রেরণ করার বাইরে কোনও সুরক্ষা যোগ করেননি, কারণ আপনি যা প্রেরণ করছেন তা উভয় ক্ষেত্রেই আসল পাসওয়ার্ড
টাইলার

54
সত্য, তবে এটি কোনও পাসওয়ার্ড প্রেরণের চেয়ে খারাপ নয় যা সম্ভবত প্লেইন্টেক্সটে ইন্টারনেটে অন্য কোথাও ব্যবহৃত হয়।
নিক ব্রান্ট

15
আমি @ নিকবার্টের সাথে একমত আক্রমণকারী যদি এমন কোনও র্যান্ডম হ্যাশ স্ট্রিং পড়েন তবে বেশ কয়েকটি স্থানে ব্যবহৃত হতে পারে এমন মূল পাসওয়ার্ডের চেয়ে কেবলমাত্র এই নির্দিষ্ট অ্যাপ্লিকেশনটির সাথে ফিট হতে পারে।
অ্যাবেসবিস

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

56

উপর https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest আমি এই স্নিপেট অভ্যন্তরীণ JS মডিউল ব্যবহার করে পাওয়া গেছে:

async function sha256(message) {
    // encode as UTF-8
    const msgBuffer = new TextEncoder().encode(message);                    

    // hash the message
    const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);

    // convert ArrayBuffer to Array
    const hashArray = Array.from(new Uint8Array(hashBuffer));

    // convert bytes to hex string                  
    const hashHex = hashArray.map(b => ('00' + b.toString(16)).slice(-2)).join('');
    return hashHex;
}

মনে রাখবেন যে crypto.subtleকেবলমাত্র httpsবা উপলভ্য localhost- উদাহরণস্বরূপ আপনার স্থানীয় বিকাশের জন্য আপনার python3 -m http.serverএই লাইনটি যুক্ত করতে হবে /etc/hosts: 0.0.0.0 localhost

পুনরায় বুট করুন - এবং আপনি localhost:8000কাজ করে খুলতে পারেন crypto.subtle


4
এটা সত্যিই দারুন. ধন্যবাদ. Node.js এ কি তুলনামূলক এপিআই পাওয়া যায়?
কন আন্তোনাকোস

4
অন্তর্নির্মিত 'ক্রিপ্টো' গ্রন্থাগারটি ঠিকভাবে করা
tytho

18

ফোরজের SHA-256 বাস্তবায়ন দ্রুত এবং নির্ভরযোগ্য।

বেশ কয়েকটি SHA-256 জাভাস্ক্রিপ্ট বাস্তবায়নের উপর পরীক্ষা চালাতে, http://brillout.github.io/test-javascript-hash-implementations/ এ যান ।

আমার মেশিনে প্রাপ্ত ফলাফলগুলি দ্রুত বাস্তবায়ন হওয়ার পরামর্শ দেয় এবং স্বীকৃত উত্তরে উল্লিখিত স্ট্যানফোর্ড জাভাস্ক্রিপ্ট ক্রিপ্টো লাইব্রেরির (এসজিসিএল) থেকেও দ্রুত গতিতে আসে।

ফোরজটি 256 কেবি বড় তবে SHA-256 সম্পর্কিত কোডটি সন্ধান করলে আকারটি হ্রাস পাবে 4.5 কেবি, https://github.com/brillout/forge-sha256 দেখুন


আমি এটি দিয়ে ইনস্টল করতে সক্ষম হয়েছি npm install node-forge, তবে এখন, লাইব্রেরিটি কীভাবে ব্যবহার করতে হবে স্ট্রিং থেকে একটি হ্যাশ তৈরি করবেন foo?
ব্যবহারকারী

17

আগ্রহীদের জন্য, SHA-256 হ্যাশ ব্যবহার করে এটি তৈরি করার কোড sjcl:

import sjcl from 'sjcl'

const myString = 'Hello'
const myBitArray = sjcl.hash.sha256.hash(myString)
const myHash = sjcl.codec.hex.fromBits(myBitArray)

4
যারা সেখানে সমাধানটি ব্যবহার করতে চান তাদের গ্রহণযোগ্য উত্তরে এটি অন্তর্ভুক্ত করা উচিত। (হেক, এমনকি তাদের নিজস্ব
ডক্সেও এর

এটি সেরা উত্তর। আমি ক্রিপ্টো সমাধানটি চেষ্টা করছিলাম কিন্তু এটি আমার পক্ষে কার্যকর হয়নি।
আগস্টো গঞ্জালেজ

12

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

জাভাস্ক্রিপ্ট ক্রিপ্টোগ্রাফি সরবরাহ করার সাথে "মুরগির ডিমের সমস্যা" কী?

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

[...]

আমি জাভাস্ক্রিপ্ট ক্রিপ্টো কোড সরবরাহ করতে টিএলএস / এসএসএল ব্যবহার করতে পারি না কেন?

আপনি পারেন। এটি শোনার চেয়ে শক্ত, তবে আপনি জাভাস্ক্রিপ্ট ক্রিপ্টটি নিরাপদে এসএসএল ব্যবহার করে একটি ব্রাউজারে প্রেরণ করেন। সমস্যাটি হ'ল, এসএসএল দিয়ে একটি সুরক্ষিত চ্যানেল স্থাপন করার পরে আপনার আর জাভাস্ক্রিপ্টের ক্রিপ্টোগ্রাফি প্রয়োজন নেই; আপনার কাছে "রিয়েল" ক্রিপ্টোগ্রাফি রয়েছে।

যা এর দিকে পরিচালিত করে:

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

জাভাস্ক্রিপ্ট কোডের কোনও অংশের কার্যকরকরণের পরিবেশটি যাচাই করার জন্য কোনও নির্ভরযোগ্য উপায় নেই। জাভাস্ক্রিপ্ট ক্রিপ্টো কোডটি জিজ্ঞাসা করতে পারে না, "আমি কি আসলেই এলোমেলো নম্বর জেনারেটরের সাথে, বা আক্রমণকারীর দ্বারা সরবরাহ করা কোনও ফ্যাসিমাইলের সাথে কাজ করছি?" এবং এটি অবশ্যই দৃsert়ভাবে বলতে পারে না যে "আমি, লেখক যেভাবে অনুমোদন করেছেন" ব্যতীত এই ক্রিপ্টো গোপনে কাউকে কিছু করার অনুমতি নেই is এগুলি দুটি বৈশিষ্ট্য যা প্রায়শই অন্যান্য পরিবেশে সরবরাহ করা হয় যা ক্রিপ্টো ব্যবহার করে এবং জাভাস্ক্রিপ্টে এটি অসম্ভব।

মূলত সমস্যাটি হ'ল:

  • আপনার ক্লায়েন্টরা আপনার সার্ভারগুলিতে বিশ্বাস করে না, তাই তারা অতিরিক্ত সুরক্ষা কোড যুক্ত করতে চায়।
  • এই সুরক্ষা কোডটি আপনার সার্ভারগুলি দিয়ে দেওয়া হয়েছে (যাদের তারা বিশ্বাস করে না)।

বা বিকল্পভাবে,

  • আপনার ক্লায়েন্টরা এসএসএলে বিশ্বাস করে না, তাই তারা চায় আপনি অতিরিক্ত সুরক্ষা কোড ব্যবহার করুন।
  • এই সুরক্ষা কোডটি এসএসএলের মাধ্যমে সরবরাহ করা হয়।

দ্রষ্টব্য: এছাড়াও, SHA-256 এর জন্য উপযুক্ত নয়, যেহেতু আনসাল্টেড অ-পুনরাবৃত্ত পাসওয়ার্ডগুলিকে জোর করা এত সহজ । আপনি যদি যাইহোক এটি করার সিদ্ধান্ত নিচ্ছেন , bcrypt , scrypt বা PBKDF2 এর প্রয়োগের সন্ধান করুন ।


4
এটি সঠিক নয়। পাসওয়ার্ডের সুরক্ষা ক্লায়েন্টের পাশে হ্যাশ করে উন্নত করা যেতে পারে। এটিও ভুল যে SHA-256 যতক্ষণ না সার্ভারের দিকে PBKDF2 এর মতো কিছু ব্যবহার করা হয় ততক্ষণ তা অনুশায়ী। তৃতীয়ত, মাতাসানো নিবন্ধটিতে দরকারী অন্তর্দৃষ্টি রয়েছে, তবে পাঞ্চ লাইনটি ভুল কারণ আমাদের কাছে এখন ব্রাউজার অ্যাপ রয়েছে যা মুরগী ​​এবং ডিমের সমস্যাটিকে মূলত পরিবর্তন করে।
ব্যবহারকারী 239558

4
আপনি ঠিক বলেছেন যে ক্লায়েন্টে PBKDF2 ব্যবহার করা উচিত। ক্লায়েন্ট সাইড জাভাস্ক্রিপ্ট ক্রিপ্টোর বিরুদ্ধে ক্রোধ ধরেছে যে প্রাথমিক পৃষ্ঠা এবং পরবর্তী অনুরোধগুলির সুরক্ষার জন্য একই বৈশিষ্ট্য রয়েছে। এটি ব্রাউজার অ্যাপ্লিকেশনগুলির ক্ষেত্রে স্পষ্টতই সত্য নয় যেখানে প্রাথমিক পৃষ্ঠা পৃথকভাবে ইনস্টল করা আছে এবং স্থিতিশীল। এটি ক্যাশে-চিরকালীন শব্দার্থবিজ্ঞানের কোনও পৃষ্ঠার ক্ষেত্রেও সত্য নয়। এই ক্ষেত্রে, এটি TOFU যা ক্লায়েন্টের পাশের প্রোগ্রামটি ইনস্টল করার সময় ঠিক একই রকম। এটি আরও জটিল সেটআপগুলিতে সত্য হতে পারে যেখানে স্ট্যাটিক এবং গতিশীল পৃষ্ঠাগুলি সার্ভারে পৃথক করা হয়।
ব্যবহারকারী 239558

4
সিস্টেম প্রশাসকদের ব্যবহারকারীর পাসওয়ার্ড অ্যাক্সেস রাখা এড়ানো বৈধ, সুতরাং ক্লায়েন্ট পক্ষের হ্যাশিং ডিবিএ বা অন্যান্য আইটি পেশাদারদের ব্যবহারকারীর পাসওয়ার্ড দেখতে বাধা দেয় এবং অন্যান্য পরিষেবা / সিস্টেমে অ্যাক্সেসের জন্য এটি পুনরায় ব্যবহার করার চেষ্টা করুন, যেহেতু প্রচুর ব্যবহারকারী তাদের পাসওয়ার্ড পুনরাবৃত্তি করে ।
ইয়ামাদ

4
@ জেনল্যান্ড আপনি যা করছেন তা একটি নতুন পাসওয়ার্ড তৈরি করছে যা "টোকেন + পাসওয়ার্ড"। সমস্ত আসল সমস্যা এখনও প্রয়োগ হয়। উদাহরণস্বরূপ, কোনও আক্রমণকারী জাভাস্ক্রিপ্ট কোড সহ টোকেন + পাসওয়ার্ড প্রেরণে প্রতিস্থাপন করতে পারে।
ব্রেন্ডন লং

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

10

আমি এই প্রয়োগটি ব্যবহার করা খুব সহজ খুঁজে পেয়েছি। বিএসডি-শৈলীর একটি উদার লাইসেন্স রয়েছে:

jsSHA: https://github.com/Caligatio/jsSHA HA

SHA-256 হ্যাশটির হেক্স-স্ট্রিং উপস্থাপনা পাওয়ার জন্য আমার একটি দ্রুত উপায় প্রয়োজন। এটি কেবল 3 লাইন নিয়েছিল:

var sha256 = new jsSHA('SHA-256', 'TEXT');
sha256.update(some_string_variable_to_hash);
var hash = sha256.getHash("HEX");

1

স্ট্যানফোর্ড লাইব ছাড়াও যে টাইলার উল্লেখ করেছেন। আমি jsrsasign খুব দরকারী খুঁজে পেয়েছি (Github রেপো এখানে: https://github.com/kjur/jsrsasign )। আমি জানি না এটি ঠিক কতটা বিশ্বাসযোগ্য, তবে আমি এটির SHA256, বেস64, আরএসএ, x509 ইত্যাদি এর API ব্যবহার করেছি এবং এটি বেশ ভালভাবে কাজ করে। প্রকৃতপক্ষে, এটি স্ট্যানফোর্ড লাইবও অন্তর্ভুক্ত।

আপনি যা করতে চান তা SHA256 হয়, jsrsasign একটি ওভারকিল হতে পারে। তবে সম্পর্কিত ক্ষেত্রে যদি আপনার অন্যান্য চাহিদা থাকে তবে আমি এটি ভাল ফিট অনুভব করি।


4
এটা ব্যবহার করা নিরাপদ এবং দ্রুততর developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API
ভিতালি Zdanevich

4
সম্মত হোন, তবে ন্যায়সঙ্গতভাবে, আমি 2015 সালে এই প্রশ্নের উত্তর দিয়েছিলাম যখন মোজিলার ওয়েব ক্রিপ্টো এপিআই স্পেসিফিকেশন জানুয়ারী 2017 প্রকাশিত হয়েছিল
ফারাওয়ে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.