Maison > interface Web > js tutoriel > Méthode de cryptage simple pour les mots de passe

Méthode de cryptage simple pour les mots de passe

一个新手
Libérer: 2017-10-20 11:04:04
original
2143 Les gens l'ont consulté

Les mots de passe des utilisateurs généraux sont également cryptés sur le serveur et ne peuvent pas être vus en texte brut. Si vous souhaitez vous rappeler d'empêcher les utilisateurs de se reconnecter au site Web sans saisir leur numéro de compte et leur mot de passe, vous pouvez l'enregistrer via les cookies, sessionStorage et localStorage.

Scénario : Une fois que l'utilisateur s'est connecté une fois avec succès, il peut se reconnecter sans perdre le numéro de compte et le mot de passe ! Enregistrez-le localement et ne souhaitez pas qu'il soit affiché en texte brut. Il ne peut être que crypté et sauvegardé (généralement le cryptage est irréversible)

1. Un simple cryptage et déchiffrement (il n'y a pas de sécurité si le code est complètement exposé)

//加密
function encrypto( str, xor, hex ) {
    if ( typeof str !== 'string' || typeof xor !== 'number' || typeof hex !== 'number') {
      return;
    }
    let resultList = []; 
    hex = hex <= 25 ? hex : hex % 25;
    for ( let i=0; i<str.length; i++ ) {
      // 提取字符串每个字符的ascll码
      let charCode = str.charCodeAt(i);
      // 进行异或加密
      charCode = (charCode * 1) ^ xor;
      // 异或加密后的字符转成 hex 位数的字符串
      charCode = charCode.toString(hex);
      resultList.push(charCode);
    }
    let splitStr = String.fromCharCode(hex + 97);
    let resultStr = resultList.join( splitStr );
    return resultStr;
}
Copier après la connexion
//解密
function decrypto( str, xor, hex ) { 
    if ( typeof str !== &#39;string&#39; || typeof xor !== &#39;number&#39; || typeof hex !== &#39;number&#39;) {
      return;
    }
    let strCharList = [];
    let resultList = []; 
    hex = hex <= 25 ? hex : hex % 25;
    // 解析出分割字符
    let splitStr = String.fromCharCode(hex + 97);
    // 分割出加密字符串的加密后的每个字符
    strCharList = str.split(splitStr);
    for ( let i=0; i<strCharList.length; i++ ) {
      // 将加密后的每个字符转成加密后的ascll码
      let charCode = parseInt(strCharList[i], hex);
      // 异或解密出原字符的ascll码
      charCode = (charCode * 1) ^ xor;
      let strChar = String.fromCharCode(charCode);
      resultList.push(strChar);
    }
    let resultStr = resultList.join(&#39;&#39;);
    return resultStr;
}
Copier après la connexion

2. Comment utiliser

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal