आप क्या हासिल करने की कोशिश कर रहे हैं पहले से ही CryptoJS में कार्यान्वित किया जाता। documentation से:
आप वर्डअरे ऑब्जेक्ट को स्पष्ट रूप से टूस्ट्रिंग विधि को कॉल करके और एन्कोडर पास करके अन्य प्रारूपों में परिवर्तित कर सकते हैं।
var hash = CryptoJS.SHA256("Message");
alert(hash.toString(CryptoJS.enc.Base64));
alert(hash.toString(CryptoJS.enc.Hex));
ईमानदारी से मुझे पता नहीं है तुम क्यों है कि अपने आप को लागू करना चाहते हैं ... लेकिन अगर आप पूरी तरह से 2 कदम आप का उल्लेख में "मैन्युअल" यह सब करने की ज़रूरत है, तो आप कुछ इस तरह की कोशिश कर सकते :
function wordToByteArray(wordArray) {
var byteArray = [], word, i, j;
for (i = 0; i < wordArray.length; ++i) {
word = wordArray[i];
for (j = 3; j >= 0; --j) {
byteArray.push((word >> 8 * j) & 0xFF);
}
}
return byteArray;
}
function byteArrayToString(byteArray) {
var str = "", i;
for (i = 0; i < byteArray.length; ++i) {
str += escape(String.fromCharCode(byteArray[i]));
}
return str;
}
var hash = CryptoJS.SHA256("Message");
var byteArray = wordToByteArray(hash.words);
alert(byteArrayToString(byteArray));
wordToByteArray
समारोह पूरी तरह से काम करना चाहिए, लेकिन ध्यान रखें कि byteArrayToString
लगभग किसी भी मामले में अजीब परिणाम देगा हो। मुझे एन्कोडिंग के बारे में बहुत कुछ पता नहीं है, लेकिन एएससीआईआईआई केवल 7 बिट्स का उपयोग करता है, इसलिए आपको पूरे बाइट को एन्कोड करने का प्रयास करते समय एएससीआईआई अक्षर नहीं मिलेगा। तो मैंने कम से कम उन सभी अजीब वर्णों को प्रदर्शित करने में सक्षम होने के लिए escape
फ़ंक्शन जोड़ा। ;)
मैं आपको सलाह देता हूं कि आप क्रिप्टोजेएस पहले ही कार्यान्वित किए गए कार्यों का उपयोग करें या केवल अपने विश्लेषण के लिए बाइट सरणी (इसे स्ट्रिंग में परिवर्तित किए बिना) का उपयोग करें।
बाइट सरणी से आपका क्या मतलब है? –
पहला प्रश्न: आपको इसकी आवश्यकता क्यों है? जो भी आप पूरा करने की कोशिश कर रहे हैं उसे हासिल करने के लिए लगभग निश्चित रूप से एक बेहतर तरीका है। – Blazemonger
@ ब्लेज़मोंगर क्रिप्टोजेएस का निरीक्षण करना चाहते हैं, यह एक शब्द ऐरे में हैश/साइफर देता है। – jacktrades