dailiboy
2018-10-24 06:15
采纳率: 50%
浏览 1.6k
已采纳

织梦CMS登录时用户名及密码加密与解密

甲方要求登录名与密码不能明码传输,需要进行加密传输。HTTPS不考虑。
请问织梦CMS怎样进行更改能够处理后台登录时,用户名与密码加密传输。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • dailiboy 2018-10-25 13:56
    已采纳

    下面是通过公钥加密。在客户端进行。

     $(function(){
        $('.login-btn').click(function(){
            var encrypt = new JSEncrypt();
            encrypt.setPublicKey("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJn0Rxsay9tUuWga7qlkCJv+QayR0sj1dJdKBo7YK4NEHJ6sVsc6H3tnynh62cPtCKOfVm24V/BCFcR3mpA2/tQW5JpUqK+vPhRbMSSc+VT+X3UyMLD7nQRKU+FvtGDXi1iBs4iaYIgsfRE/YkqcSk8KerXv8VJ7xqFdh+db12XwIDAQAB");
            var data = encrypt.encrypt($("#userName").val());
            $("#userName").val(data);
            //alert(data);
            //var userstr = $('#userName').val();
            $('#formid').submit();
        })
    })
    

    下面是在服务前端进行解密

     $encrypted = '123';
    
    $pi_key="MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIJoj7Saah2vUCAggAMBQGCCqGSIb3DQMHBAij1y6O0VtQDQSCAoBs7qL7zLk7nLMPkxQcv1o9mjXq2bcW2JR8o44yu93YelOlEbJGirnjE8RwKhMQaX+r/lFnC+lFwvWvUOlMIUtkTwft+nAwYHQToV9VBixmmdmVhDfo7/WYGFneVJgyuFrwHEsV8dG4Cq4zTHqWIYLdsPMFWxOeDNkjqbTmfNV8a7SDrbXfnD9OHCXQXEP5iuAmyimZK16pGq+wiYJVV+AevtSG6r9F2nrP+AeGqzIe2CZDixc5eHNtWhB/u8krN3z/6AUBZdXSh5m6FycvMgUAcY/uBuXNxmF60PkRV4DSOl40E7TBd6PiRhEIu2OewaxH7zW8p+5tRYpYVAh0wAq351OK+p0U0Fc0lgGdenDLSUjNL5Uajb+ov1/p8Ab5QMCQ9eG6TtubX/pDBDwf2hQVfpizjM4JCi2BQCibwBjJM1K7aJClBzg2+enSaNEw4v21aOjvrpQzGlYxaCXvbA6JHBKyz8bNNXOlfBOTe3Hn+KvYd2CZhodg/4FxT6PZUw97E17hETeJp4LKL9jq6ijiUsplCrI70d2qacmvEN1P8rl7WahwjfTie1CGg1gRPWIlQalJUryr7AdbLoqXBNYZMsSp81SGfDA0S++u07Zxnpp7sKC3Wdv4qyFA4ZmzpSA3kOtH2N/C3h0N36x87UhzU4JaSr7AkelmfixRGbDQMhOa9qCjaRRD3REB0EIwB1z+fqrWOVFXx4NuWGHhm5xsxnw+ANjg53aSZFb+RWXC6R9PdWrp9pss6cvPMxJMjoowEp8/Qy8bASvKSv267Z5nzP/rflbQlo3HY3pQ8XNUF3nPkRfZ7+pmXkaoHTXULW3g2n4xRHulHGk1wj2A3rfs";
    
    openssl_private_decrypt($userid, $encrypted, $pi_key);
    

    通过openssl_private_decrypt方法后,$userid和 $encrypted的值都没有发生改变。
    我是直接在后台用openssl_private_decrypt这个方法,也不清楚这个方法是否还需要其他类库的支持。

    前台是javascript 后台是PHP

    之前的回答都提供了解决方法,但是因为我技术不足,并没有很好的实现。所以我最终采用了HASH的方法,往用户名和密码处插入随机编码,后台剔除插入的随机编码。

    点赞 评论
  • 就如同caozhy说的一样,请尊重别人劳动成果,别人帮你回答,不收你钱吧,如果答案对你有帮助,你就动动小手采纳下。
    你可以用MD5来加密密码。具体用法自行百度了。

    点赞 评论
  • 邪恶八进制 2018-10-24 06:32

    一般加密传输基本都是使用的非对称加密,这你首先得需要对加密算法有一定的了解,加密手段拟办分为两种,可逆和不可逆,
    像MD5、SHA256等是不可逆的加密算法,像base64、AES、RSA都是可逆的,然后你说的是加密传输肯定需要用可逆的加密算法,而且是敏感信息

    对于安全性就会更加注重,所以一般都会选RSA加密,这其实就是一种思想,具体的实现其实还是会有差别的,在网上有很多这种工具类或者js等。

    然后你说的织梦CMS我没接触过,但只要是设计传输加密一般要么就是使用https+RSA公私钥加密传输,然后登陆一般还有验证码+token,具体的必须要结合你自己的业务考虑。

    点赞 评论

相关推荐 更多相似问题