दिलचस्प पोस्ट
क्रॉन का विंडोज संस्करण क्या है? कैसे int को कन्वर्ट करने के लिए? इस संकेतक के माध्यम से मुझे टेम्प्लेट बेस वर्ग के सदस्यों का उपयोग क्यों करना है? अन्य ऐप से फेसबुक ऐप लॉन्च करें C ++ कोड में कौन सी सीआई / ओ लाइब्रेरी का उपयोग किया जाना चाहिए? LINQ के माध्यम से पेड़ को कैसे समतल करना है? जेपीए में शामिल कॉलम बनाम मैप किए गए डब्ल्यूसीएफ नामित पाइप का न्यूनतम उदाहरण अनुरोधित संसाधन पर 'एक्सेस-कंट्रोल-अनुमति-उत्पत्ति' हेडर उपस्थित नहीं है-जब एक REST API से डेटा प्राप्त करने की कोशिश कर रहा हो क्या एक वैध XML फ़ाइल को XML घोषणा की आवश्यकता है? क्या जेडीबीसी के साथ पोस्टग्रेड्स से कनेक्ट करते समय स्कीमा निर्दिष्ट करना संभव है? बाश कमांड लाइन तक पहुंच $ $ बनाम $ $ कैसे एक jdk संस्करण को .class फ़ाइल को संकलित करने के लिए प्रयोग किया जाता है एंड्रॉइड एक्लिप्स डीडीएमएस – फ़ाइलों को खींचने के लिए फोन पर डेटा / डेटा / एक्सेस नहीं किया जा सकता है JQuery Datepicker onchange घटना मदद!

क्लाइंट-साइड जावास्क्रिप्ट में बेस 64 एन्कोडिंग और डीकोडिंग

क्या जावास्क्रिप्ट में कोई भी तरीका है जिसका उपयोग बेस 64 एन्कोडिंग का उपयोग कर एक स्ट्रिंग को डीकोड और डीकोड करने के लिए किया जा सकता है?

वेब के समाधान से एकत्रित समाधान "क्लाइंट-साइड जावास्क्रिप्ट में बेस 64 एन्कोडिंग और डीकोडिंग"

फ़ायरफ़ॉक्स, क्रोम, सफारी, ओपेरा और आईई 10 + जैसे कुछ ब्राउज़रों ने मूल रूप से बेस64 को संभाला है इस Stackoverflow प्रश्न पर एक नज़र डालें यह btoa() और atob() कार्यों का उपयोग कर रहा है

सर्वर-साइड जावास्क्रिप्ट के लिए, नोड । जेएस के लिए एक बीटो पैकेज है ।

यदि आप एक क्रॉस-ब्राउज़र समाधान के लिए जा रहे हैं, तो मौजूदा पुस्तकालय हैं जैसे कि क्रिप्टोजएस या कोड जैसे:

http://ntt.cc/2008/01/19/base64-encoder-decoder-with-javascript.html

उत्तरार्द्ध के साथ, आपको पार ब्राउज़र संगतता के लिए फ़ंक्शन का अच्छी तरह से परीक्षण करने की आवश्यकता है। और त्रुटि को पहले ही सूचित किया जा चुका है ।

Gecko / WebKit- आधारित ब्राउज़र (फ़ायरफ़ॉक्स, क्रोम और सफारी) और ओपेरा में, आप btoa () और एटोब () का उपयोग कर सकते हैं।

मूल उत्तर: आप JavaScript में Base64 के लिए स्ट्रिंग कैसे एन्कोड कर सकते हैं?

यहां स्निपर के पोस्ट का कड़ा हुआ संस्करण है यह अनुमान नहीं है कि कैरेज़ रिटर्न के साथ बेस 64 स्ट्रिंग का निर्माण किया गया है। यह संस्करण दो छोरों को समाप्त करता है, Yaroslav से &0xff फिक्स जोड़ता है, पिछड़े नल को समाप्त करता है, साथ ही कोड गोल्फ का एक बिट भी।

 decodeBase64 = function(s) { var e={},i,b=0,c,x,l=0,a,r='',w=String.fromCharCode,L=s.length; var A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; for(i=0;i<64;i++){e[A.charAt(i)]=i;} for(x=0;x<L;x++){ c=e[s.charAt(x)];b=(b<<6)+c;l+=6; while(l>=8){((a=(b>>>(l-=8))&0xff)||(x<(L-2)))&&(r+=w(a));} } return r; }; 

इंटरनेट एक्सप्लोरर 10+

 // Define the string var string = 'Hello World!'; // Encode the String var encodedString = btoa(string); console.log(encodedString); // Outputs: "SGVsbG8gV29ybGQh" // Decode the String var decodedString = atob(encodedString); console.log(decodedString); // Outputs: "Hello World!" 

क्रॉस ब्राउज़र

पुनः लिखित और modularized UTF-8 और बेस 64 जावास्क्रिप्ट एन्कोडिंग और डिकोडिंग पुस्तकालयों / मॉड्यूल के लिए AMD, CommonJS, NodeJs और ब्राउज़र्स। क्रॉस-ब्राउज़र संगत


Node.js के साथ

यहां आप नोड। जेएस में बेस 64 में सामान्य पाठ को कैसे एन्कोड करते हैं:

 //Buffer() requires a number, array or string as the first parameter, and an optional encoding type as the second parameter. // Default is utf8, possible encoding types are ascii, utf8, ucs2, base64, binary, and hex var b = new Buffer('JavaScript'); // If we don't use toString(), JavaScript assumes we want to convert the object to utf8. // We can make it convert to other formats by passing the encoding type to toString(). var s = b.toString('base64'); 

और यहां आप बेस 64 एन्कोडेड स्ट्रिंग को डीकोड करते हैं:

 var b = new Buffer('SmF2YVNjcmlwdA==', 'base64') var s = b.toString(); 

Dojo.js के साथ

Dojox.encoding.base64 का उपयोग कर बाइट्स की एक सरणी को सांकेतिकृत करने के लिए:

 var str = dojox.encoding.base64.encode(myByteArray); 

बेस 64-एन्कोडेड स्ट्रिंग को डीकोड करने के लिए:

 var bytes = dojox.encoding.base64.decode(str) 

कन्वेयर कोण-बेस64 स्थापित करें

 <script src="bower_components/angular-base64/angular-base64.js"></script> angular .module('myApp', ['base64']) .controller('myController', [ '$base64', '$scope', function($base64, $scope) { $scope.encoded = $base64.encode('a string'); $scope.decoded = $base64.decode('YSBzdHJpbmc='); }]); 

पर कैसे?

यदि आप इस बारे में अधिक जानने के लिए चाहते हैं कि बेस 64 को सामान्य रूप में एन्कोड किया गया है, और विशेष रूप से जावास्क्रिप्ट में, मैं इस लेख की अनुशंसा करूंगा: जावास्क्रिप्ट में कम्प्यूटर साइंस: बेस 64 एन्कोडिंग

असफलता के बिना छोटे और तेज बेस64 जावास्क्रिप्ट डीकोड फ़ंक्शन:

 function decode_base64 (s) { var e = {}, i, k, v = [], r = '', w = String.fromCharCode; var n = [[65, 91], [97, 123], [48, 58], [43, 44], [47, 48]]; for (z in n) { for (i = n[z][0]; i < n[z][1]; i++) { v.push(w(i)); } } for (i = 0; i < 64; i++) { e[v[i]] = i; } for (i = 0; i < s.length; i+=72) { var b = 0, c, x, l = 0, o = s.substring(i, i+72); for (x = 0; x < o.length; x++) { c = e[o.charAt(x)]; b = (b << 6) + c; l += 6; while (l >= 8) { r += w((b >>> (l -= 8)) % 256); } } } return r; } 

यहां आधार64_encode और base64_decode जावास्क्रिप्ट का उपयोग करने के लिए सबसे अच्छा तरीका है। लिंक नीचे देखें

http://phpjs.org/functions/base64_encode:358

http://phpjs.org/functions/base64_decode:357

Php.js परियोजना में PHP के कई कार्यों के जावास्क्रिप्ट लागूकरण हैं base64_encode और base64_decode शामिल हैं।

मैंने phpjs.org पर जावास्क्रिप्ट रुटीन की कोशिश की है और उन्होंने अच्छी तरह से काम किया है।

मैंने पहली बार रणधीर कोरे के चुने हुए उत्तर में सुझाई गई दवाईयों की कोशिश की – http://ntt.cc/2008/01/19/base64-encoder-decoder-with-javascript.html

मैंने पाया कि उन्होंने सभी परिस्थितियों में काम नहीं किया। मैंने एक टेस्ट केस लिखा था, जहां ये रूटीन विफल हो गईं और उन्हें गिटहब को यहां पोस्ट किया गया था:

https://github.com/scottcarter/base64_javascript_test_data.git

मैं लेखक को चेतावनी देने के लिए ntt.cc पर ब्लॉग पोस्ट पर एक टिप्पणी पोस्ट करता हूं (मॉडरेशन का इंतजार – लेख पुराना है, इसलिए सुनिश्चित नहीं है कि टिप्पणी पोस्ट की जाएगी)।

क्या किसी को कोड गोल्फ कहते हैं? =)

निम्नलिखित समय के साथ पकड़ते हुए मेरा अपवाद सुधारने का मेरा प्रयास निम्न है आपकी सुविधा के लिए आपूर्ति की

 function decode_base64(s) { var b=l=0, r='', m='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); s.split('').forEach(function (v) { b=(b<<6)+m.indexOf(v); l+=6; while (l>=8) r+=String.fromCharCode((b>>>(l-=8))&0xff); }); return r; } 

क्या वास्तव में मैं एक अतुल्यकालिक कार्यान्वयन के बाद था और मेरे आश्चर्य के लिए यह JQuery के $([]).each विरोध के रूप में प्रत्येक के लिए निकला $([]).each विधि कार्यान्वयन बहुत तुल्यकालिक है

यदि आप भी इस तरह के पागल विचारों को एक 0 देरी window.setTimeout को ध्यान में रखते थे .सेटटाइम बेस 64 डीकोड को एसिंक्रोनस से चलाएंगे और परिणाम के साथ कॉलबैक फ़ंक्शन को निष्पादित करेंगे जब किया जाएगा।

 function decode_base64_async(s, cb) { setTimeout(function () { cb(decode_base64(s)); }, 0); } 

forEach ईसीएमए -262 मानक पांचवें संस्करण के लिए है और क्या आप मंदबुद्ध ब्राउज़रों की देखभाल कर सकते हैं, जिन्हें आप उन्हें पागल करने के लिए कार्यक्षमता को भरना चाहते हैं या वैकल्पिक रूप से आप ईसीएमएस्क्रिप्ट 6 हार्मनी प्रोजेक्ट की तरह कुछ भी प्ररित कर सकते हैं जो ES6 संक्रमण के लिए पूर्ण ES5 पूरा करेगा तुम्हारे लिए।

यदि आप कुछ और अधिक परंपरागत खोज रहे थे तो शायद आपके स्वाद के लिए निम्नलिखित अधिक है।

 function decode_base64(s) { var b=l=0, r='', s=s.split(''), i, m='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); for (i in s) { b=(b<<6)+m.indexOf(s[i]); l+=6; while (l>=8) r+=String.fromCharCode((b>>>(l-=8))&0xff); } return r; } 

मेरे पास अनुनासिक नल का मुद्दा नहीं था, इसलिए यह ठीक trimRight() रहने के लिए हटा दिया गया था, लेकिन इसे आसानी से एक trim() या एक trim() trimRight() साथ हल किया जाना चाहिए यदि आप चाहें, तो क्या यह आपके लिए एक समस्या पैदा कर सकता है?

अर्थात।

 return r.trimRight(); 

एन ज्वॉय!

 function b64_to_utf8( str ) { return decodeURIComponent(escape(window.atob( str ))); } https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_.22Unicode_Problem.22 

मैं बजाय बेस्ट 64 सांकेतिक शब्दों में बदलना / डीकोड पद्धतियों का प्रयोग क्रिप्टोजएस से करना चाहता हूं , सर्वोत्तम प्रथाओं और पैटर्नों का उपयोग करके जावास्क्रिप्ट में लागू मानक और सुरक्षित क्रिप्टोग्राफ़िक एल्गोरिदम के लिए सबसे लोकप्रिय पुस्तकालय।

Node.js में हम इसे सरल तरीके से कर सकते हैं

 var base64 = 'SGVsbG8gV29ybGQ=' var base64_decode = new Buffer(base64, 'base64').toString('ascii'); console.log(base64_decode); // "Hello World"