<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>字符串加密 by 林自爽 - 2016/09/12</title>
</head>
<body>
</body>
<script>
  // 字符串加密 by 林自爽 - 2016/09/12
  var x = [
    {'desc':'管理','info':'lin'},
    ...
    {'desc':'iphone锁屏','info':'19'}
  ];

  showData('你原来的内容:',x);
  //编码
  var arr = unicodeArr(x);
  showData('你加密后的内容:',arr);
  //转码
  var str = stringArr(arr);
  showData('你解密后的内容:',str);

  // 显示数据
  function showData(desc,arr){
    var _html = '<div>'+desc+'</div>';
    for(var i in arr){
      _html += '<div>desc:'+arr[i].desc+',info:'+arr[i].info+'<div>'
    }
    document.write(_html);
  }

  // 将字符串数组转成unicode编码的数组
  function unicodeArr(arr){
    var _data = [];
    for(var i in arr){
      var desc = getUnicode(arr[i].desc);
      var info = getUnicode(arr[i].info);
      _data[i] = {
        'desc':desc,
        'info':info
      };
    }
    return _data;
  }

  // 将unicode编码的数组转成字符串数组
  function stringArr(arr){
    var _data = [];
    for(var i in arr){
      var desc = getStringForUnicode(arr[i].desc);
      var info = getStringForUnicode(arr[i].info);
      _data[i] = {
        'desc':desc,
        'info':info
      };
    }
    return _data;
  }

  //单元方法 字符串转unicode
  function getUnicode(str){
    var arr = [];
    for(var i in str){
      arr.push(encrypt(str.charCodeAt(i)));
    }
    return arr;
  }

  //单元方法 unicode转字符串
  function getStringForUnicode(arr){
    var str = '';
    for(var i in arr){
      str += String.fromCharCode(decrypt(arr[i]));
    }
    return str;
  }

  // 加密
  function encrypt(num){
    num += 10086;
    return num;
  }

  // 解密
  function decrypt(num){
    num -= 10086;
    return num;
  }
</script>
</html>

源头是这样的,我把我所有的账号密码都写在了一个文件中,本来是可以用压缩到zip中,然后设个超过20位的密码,再去md5一下,保存这个md5的字符。

但是觉得上面的方法太麻烦了,我需要一个直接在web就能执行,我只要记住几个数字的。

于是,我将账号密码扔到了一个数组中,数组上都是对象。

那怎么加密呢,首先charCodeAt()是可以将任意字符转成unicode编码的,String.fromCharCode()可以将unicode转成字符串。

charCodeAt()转的unicode是数字,既然是数字,那我任意让这个数字+-*/某一个数不就可以咯,解码的时候就反向解回来。

于是就有了以下的代码

为了避免信息泄露我已经将我的数组随便删除了一部分数据。

  

用js加密你的重要信息的更多相关文章

  1. 昆仑游戏[JS加密修改]

    昆仑游戏:http://www.kunlun.com/index.html JS加密修改 BigTools=window.BigTools;//重点 RSAKeyPair=window.RSAKeyP ...

  2. web主题公园版权信息破解:script.js加密文件

    很多人会使用web主题公园网站的免费worldpress主题,但它的主题又都被加了版权信息,故意让人找不到版权信息的修改位置. 你如果去footer.php里面删除版权信息(技术支持:web主题公园) ...

  3. js加密的密文让PHP解密(AES算法)

      JS加密代码如下     <script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/aes ...

  4. RSA加密前端JS加密,后端asp.net解密,报异常

    RSA加密前端JS加密,后端asp.net解密,报异常 参考引用:http://www.ohdave.com/rsa/的JS加密库 前端JS加密代码: function GetChangeStr() ...

  5. RSA前台js加密,后台C#解密

    一.需求: 为了安全,项目中前台登陆用的密码需要加密传到后台,后台c#解密登陆密码. 二.解决方案 采用非对称加密算法RSA来达到目的,前台登陆页面一加载便发送一次ajax请求获取后台产生的公钥,用于 ...

  6. 【不怕坑】之 Node.js加密 C#解密

    本人也不太了解AES加密解密,为了解决Node.js加密,但是无法C#解密的问题,在网上搜了大量的相关文章. 但是多数是Node.js vs Java 或 Java vs C#的双向加密解密代码,但是 ...

  7. JS分段上传文件(File)并使用MD5.js加密文件段用来后台校验

    HTML <form method="POST" name="form1" action="/mupload/upload/" enc ...

  8. NodeJS 实现 客户端 js 加密

    NodeJS 实现 客户端 js 加密 思路: 服务端渲染业务代码js => 前后端约定加密算法 => 业务代码进行签名 => 客户端解密业务代码 => eval 执行 Nod ...

  9. AES加密解密——AES在JavaWeb项目中前台JS加密,后台Java解密的使用

    一:前言 在软件开发中,经常要对数据进行传输,数据在传输的过程中可能被拦截,被监听,所以在传输数据的时候使用数据的原始内容进行传输的话,安全隐患是非常大的.因此就要对需要传输的数据进行在客户端进行加密 ...

随机推荐

  1. java16

    1:List的子类(掌握) (1)List的子类特点 ArrayList: 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector: 底层数据结构是数组,查询快,增删慢 线程安全,效率低 ...

  2. JQuery中对option的添加、删除、取值

    jQuery获取Select选择的Text和Value: 1. $("#select_id").change(function(){//code...});    //为Selec ...

  3. MySQL批量删除指定前缀表

    Select CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.tables Where table_name LIKE ...

  4. Knockout.js随手记(2)

    计算属性 konckout.js的API文档,写的极为详细和生动,透过MVVM的运作原理,开发时只需专注于定义ViewModel逻辑,不需耗费心力处理TextBox.Select的onchange.o ...

  5. JupyterNotebook如何添加table of content

    不要总是等待,而是去创造 方法一 ipython notebook升级成了jupyter notebook,在4.x之后的版本,jupyter提供了jupyter-nbextension命令来安装和启 ...

  6. 廖雪峰js教程笔记13 插入DOM

    当我们获得了某个DOM节点,想在这个DOM节点内插入新的DOM,应该如何做? 如果这个DOM节点是空的,例如,<div></div>,那么,直接使用innerHTML = '& ...

  7. 【html+css】关于页面布局中遇到的问题记录

    关于行内元素: 行内元素设置width无效, height无效(可以设置line-height), margin上下无效,padding上下无效,margin和padding可设置左右.   text ...

  8. Delphi 各版本新特性功能网址收集

    Delphi XE2 三个新功能介绍举例_西西软件资讯  http://www.cr173.com/html/13179_1.html delphi 2007新功能简介-davidxueer-Chin ...

  9. 2016 Multi-University Training Contest 4

    6/12 2016 Multi-University Training Contest 4官方题解 KMP+DP A Another Meaning(CYD) 题意: 给一段字符,同时给定你一个单词, ...

  10. C# 正则表达式匹配汉字

    ; Regex P_regex = new Regex("^[\u4E00-\u9FA5]{0,}$"); ;i < txt_str.Text.Length; i++) { ...