nodejs如何进行源码加密

一、背景

nodejs作为越发繁荣的生态,出现诸多丰富的组件,但是由于nodejs的解释性运行的问题,导致代码安全性的问题越来越大。那么如何对源码进行加密呢,我们通过循序渐进的方法实现代码的加密。

二、解决思路

1.通过代码混淆或者代码压缩,降低可读性。

这类方法普遍使用在github等开源社区中,代码虽然开源,但是只要我不提供文档说明,我不告诉你业务逻辑。给你代码也是瞎的,但是如果对于业务逻辑比较简单的情况,或者有UI功能进行辅助,大家也可以猜个八九不离十。根本谈不上加密,只是增加你修改的难度,本质等同于我不告诉你怎么写的,我不换行写,我所有变量都都用abc定义,你行你自己看呗状态, 个人觉得效果不佳。

加密效果:☆

维护难度:☆☆☆

加密出来的样子:

       t.exports = function() {
            "use strict";
            var t = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
                return typeof t
            }
            : function(t) {
                return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
            }
              , e = function(t, e) {
                if (!(t instanceof e))
                    throw new TypeError("Cannot call a class as a function")
            }
              , n = function() {
                function t(t, e) {
                    for (var n = 0; n < e.length; n++) {
                        var i = e[n];
                        i.enumerable = i.enumerable || !1,
                        i.configurable = !0,
                        "value"in i && (i.writable = !0),
                        Object.defineProperty(t, i.key, i)
                    }
                }
                return function(e, n, i) {
                    return n && t(e.prototype, n),
                    i && t(e, i),
                    e
                }
            }()
              , i = Object.assign || function(t) {
                for (var e = 1; e < arguments.length; e++) {
                    var n = arguments[e];
                    for (var i in n)
                        Object.prototype.hasOwnProperty.call(n, i) && (t[i] = n[i])
                }
                return t
            }
              , r = function() {
                function t(n) {
                    var i = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1]
                      , r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : []
                      , o = arguments.length > 3 && void 0 !== arguments[3] ? argume
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值