Nodejs entwickelt ein WeChat-Applet zur Implementierung der Passwortverschlüsselung

不言
Freigeben: 2018-06-23 16:26:17
Original
2232 Leute haben es durchsucht

Was dieser Artikel mit Ihnen teilt, ist der Beispielcode zur Implementierung der Passwortverschlüsselung bei der Entwicklung des WeChat-Applets. Es ist sehr einfach. Freunde in Not können sich darauf beziehen.

WeChat-Applet-Entwicklung. Spezifische Schritte zum Implementieren der Passwortverschlüsselung:

Fügen Sie eine Funktion in der Datei util.js in utils hinzu, um die Zeichenfolge in eine hexadezimal verschlüsselte Zeichenfolge umzuwandeln:

function encodeUTF8(s) {

var i, r = [], c, x;

for (i = 0; i < s.length; i++)

if ((c = s.charCodeAt(i)) < 0x80) r.push(c);

else if (c < 0x800) r.push(0xC0 + (c >> 6 & 0x1F), 0x80 + (c & 0x3F));

else {

if ((x = c ^ 0xD800) >> 10 == 0) //对四字节UTF-16转换为Unicode

c = (x << 10) + (s.charCodeAt(++i) ^ 0xDC00) + 0x10000,

r.push(0xF0 + (c >> 18 & 0x7), 0x80 + (c >> 12 & 0x3F));

else r.push(0xE0 + (c >> 12 & 0xF));

r.push(0x80 + (c >> 6 & 0x3F), 0x80 + (c & 0x3F));

};

return r;

};

// 字符串加密成 hex 字符串

function sha1(s) {

var data = new Uint8Array(encodeUTF8(s))

var i, j, t;

var l = ((data.length + 8) >>> 6 << 4) + 16, s = new Uint8Array(l << 2);

s.set(new Uint8Array(data.buffer)), s = new Uint32Array(s.buffer);

for (t = new DataView(s.buffer), i = 0; i < l; i++)s[i] = t.getUint32(i << 2);

s[data.length >> 2] |= 0x80 << (24 - (data.length & 3) * 8);

s[l - 1] = data.length << 3;

var w = [], f = [

function () { return m[1] & m[2] | ~m[1] & m[3]; },

function () { return m[1] ^ m[2] ^ m[3]; },

function () { return m[1] & m[2] | m[1] & m[3] | m[2] & m[3]; },

function () { return m[1] ^ m[2] ^ m[3]; }

], rol = function (n, c) { return n << c | n >>> (32 - c); },

k = [1518500249, 1859775393, -1894007588, -899497514],

m = [1732584193, -271733879, null, null, -1009589776];

m[2] = ~m[0], m[3] = ~m[1];

for (i = 0; i < s.length; i += 16) {

var o = m.slice(0);

for (j = 0; j < 80; j++)

w[j] = j < 16 ? s[i + j] : rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1),

t = rol(m[0], 5) + f[j / 20 | 0]() + m[4] + w[j] + k[j / 20 | 0] | 0,

m[1] = rol(m[1], 30), m.pop(), m.unshift(t);

for (j = 0; j < 5; j++)m[j] = m[j] + o[j] | 0;

};

t = new DataView(new Uint32Array(m).buffer);

for (var i = 0; i < 5; i++)m[i] = t.getUint32(i << 2);

var hex = Array.prototype.map.call(new Uint8Array(new Uint32Array(m).buffer), function (e) {

return (e < 16 ? "0" : "") + e.toString(16);

}).join("");

return hex;

};
Nach dem Login kopieren

Exportfunktion

module.exports = {

formatTime: formatTime,

sha1:sha1

}
Nach dem Login kopieren

Auf diese Weise können Sie es auf anderen Seiten aufrufen

var util = require(&#39;../../utils/util.js&#39;)

util.sha1("123456")
Nach dem Login kopieren

Nehmen Sie als Beispiel das Passwort 123456, das Ergebnis der Online-Verschlüsselung


Aufruf des Ergebnisses im Applet


Die Verschlüsselungsergebnisse sind die gleichen

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist die chinesische PHP-Website!

Verwandte Empfehlungen:

WeChat-Applet-Entwicklung zur Realisierung des Seitenwechsels von Tabs

WeChat-Applet zur Realisierung von Echtzeitkreisen Umschaltmethode zur Gestaltung des Fortschrittsbalkens

Implementierung der Nachrichtenaufforderungsbox des WeChat-Applets

Das obige ist der detaillierte Inhalt vonNodejs entwickelt ein WeChat-Applet zur Implementierung der Passwortverschlüsselung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage