-->
Giảm 200k theme code nhân dịp 30/04-01/05 (Áp dụng theme code từ 500k) Mua ngay

Hướng dẫn tạo License Key bảo vệ template Blogger sử dụng JavaScript

Hướng dẫn tạo License Key bảo vệ template Blogger sử dụng JavaScript

Cập nhật ngày Bởi

Gần đây các bạn có thể thấy trên Blog mình đã chia sẻ một vài template mà họ đã sử dụng license key để kích hoạt đúng không? Ví dụ như Plus UI v2.6.1 hay Apmody v1.4 chẳng hạn tuy 2 template đã mã hoá JavaScript mình vẫn chưa biết cách giải nhưng mình biết đoạn mã JavaScript để kích hoạt license key ở đâu nên mình đã thay nó bằng đoạn mã khác cũng tương tự.

Cách tạo License Key cho template Blogger sử dụng JavaScript đơn giản

Và trong bài viết này mình sẽ chia sẻ cho các bạn đoạn mã JavaScript để kích hoạt license key cho template Blogger và cách lưu trữ license key.

Cách hoạt động của License Key

Cách hoạt động của nó thì rất đơn giản rằng các bạn sẽ lưu thông tin để tạo License Key trên Google Script để tăng tính bảo mật và từ thông tin đó mình sẽ chuyển nó sang dạng mã hoá Base64 kiểu như này dFu5d8WerUWerZN3OHf=. Nó cũng có thể sử dụng tương tự viết Github nhưng nó sẽ rất dễ bị người khác biết và thay đổi. License Key sẽ do các bạn tuỳ ý quản lý và mỗi License Key chỉ sử dụng được trên 1 Blog cố định.

Cách tạo Google Script chứa thông tin License Key

Có 2 cách để tạo Google Script chứa thông tin License Key nhưng mình sẽ hướng dẫn các bạn cách nhanh nhất mà mình đã dùng.

Bước 1: Truy cập https://script.google.com/home và chọn New project.

Cách tạo License Key cho template Blogger sử dụng JavaScript đơn giản

Bước 2: Đặt tên cho project của bạn và thay thế toàn bộ đoạn mã có sẵn bằng đoạn mã sau:

function doGet() {
  var nldblog = ContentService.createTextOutput();
  nldblog.append('{"user":[{"no":0,"name":"","url":"","id":"","code":""},{"no":1,"name":"","url":"","id":"","code":""},{"no":2,"name":"","url":"","id":"","code":""},{"no":3,"name":"","url":"","id":"","code":""},{"no":4,"name":"","url":"","id":"","code":""},{"no":5,"name":"","url":"","id":"","code":""},{"no":6,"name":"","url":"","id":"","code":""},{"no":7,"name":"","url":"","id":"","code":""},{"no":8,"name":"","url":"","id":"","code":""},{"no":9,"name":"","url":"","id":"","code":""},{"no":10,"name":"","url":"","id":"","code":""}]}');
  return nldblog;
}

Cách tạo License Key cho template Blogger sử dụng JavaScript đơn giản

Với mỗi License Key sẽ là 1 object bao gồm như sau:

{"no":0,"name":"","url":"","id":"","code":""}

Trong đó no là số thứ tự, url là url của blog kích hoạt key, id là id của blog kích hoạt key, code đây sẽ là thông tin để tạo license key. Ví dụ 1 object như sau:

{"no":0,"name":"NLD Blog","url":"www.trongminh.net","id":"6311614170532925167","code":"nldblogcode"}

Bước 3: Sau đó các bạn chọn Deploy và chọn tiếp New deployment. Một popup sẽ hiện lên và tại cột Select type các bạn chọn vào hình bánh răng cưa và chọn Web app. Tại cột Configuration các bạn để như sau:

Cách tạo License Key cho template Blogger sử dụng JavaScript đơn giản

Xong các bạn chọn Deloy. Tiếp theo sẽ hiện URL của Web app các bạn hãy lưu lại vào notepad hay đâu đó.

Cách tạo License Key cho template Blogger sử dụng JavaScript đơn giản

Để thêm 1 object thông tin license key mới các bạn thêm hoặc sửa 1 object tương tự như trên và tại bước 3 các bạn chọn Deply và sau đó chọn Manage deployments. Tiếp đó 1 popup hiện nên tại cột Configuration các bạn chọn hình cây bút (Edit) sau đó tại mục Version các bạn chọn New version và bấm Deploy.

Vậy là xong phần Google Script.

Thêm code JavaScipt kiểm tra giấy phép vào template

Bước 1: Các bạn thêm đoạn code dưới đây vào sau thẻ <body>.

<script><b:eval expr='&quot;const blogID=&apos;&quot; + data:blog.blogId + &quot;&apos;;&quot;'/></script>

Bước 2: Tiếp tục thêm đoạn code dưới đây vào phía trước thẻ </body>.

<script>//<![CDATA[
    var licensekey = "licensekey";
//]]></script>

Đoạn code này sẽ public để nhận license key và licensekey ở đây sẽ thay thế bằng License Key các bạn tạo.

Bước 3: Thêm tiếp đoạn code dưới đây ngay phía dưới đoạn code vừa thêm ở bước 2.

<script>//<![CDATA[
    var e, s = "https://www.trongminh.net";
    function o() {
        window.alert("Invalid License Key"), document.body.innerHTML = "", window.location.href = s
    }
    try {
        e = atob(licensekey)
    } catch (e) {
        try {
            o()
        } catch (e) {
            window.location.href = s
        }
    }
    var n = e.split("-"),
        l = n[0];
    if (void 0 === (n = n[1])) try {
        o()
    } catch (e) {
        window.location.href = s
    }
    str = [n], getAJ({
        url: "Web app URL",
        async: !0,
        success: function (e) {
            var n = JSON.parse(e).user[str];
            if (void 0 === n) try {
                o()
            } catch (e) {
                window.location.href = s
            }
            var u = n.id,
                d = n.code,
                a = n.url;
            try {
                if (blogID + l === u + d && 0 != function (e) {
                        if (-1 == window.location.pathname.indexOf("/b/preview") && -1 == window.location.pathname.indexOf("/b/blog-preview")) return e == window.location.hostname
                    }(a)) return void console.log('Licensed to: ' + n.name + ', Licensed for: ' + n.url);
                try {
                    o()
                } catch (e) {
                    window.location.href = s
                }
            } catch (e) {
                try {
                    o()
                } catch (e) {
                    window.location.href = s
                }
            }
        }
    })
    function getAJ(e) {
        var r = new XMLHttpRequest;
        try {
            r = new XMLHttpRequest
        } catch (t) {
            try {
                r = new ActiveXObject("Msxml2.XMLHTTP")
            } catch (t) {
                try {
                    r = new ActiveXObject("Microsoft.XMLHTTP")
                } catch (t) {
                    return console.warn("Something went wrong!"), !1
                }
            }
        }
        r.onreadystatechange = function () {
            var n;
            4 == r.readyState && (200 == r.status ? (n = r.responseText, e.success(n)) : "function" == typeof e.error && e.error(r))
        }, r.open("GET", e.url, e.async), r.send()
    }
//]]></script>

Thay https://www.trongminh.net bằng URL sẽ chuyển hướng khi sai License Key và Web app URL bằng Web app URL mà mình đã bảo các bạn lưu lại vào notepad ở phần trước.

Và để tăng thêm bảo mật thì các bạn nên mã hoá đoạn JavaScript ở bên trong thẻ <script>//<![CDATA[ ... //]]></script> bằng một số công cụ sau hoặc tuỳ cách hoá của các bạn.

https://www.cleancss.com/javascript-obfuscate hoặc https://javascriptobfuscator.com/Javascript-Obfuscator.aspx các bạn có thể mã hoá nhiều lần để bảo mật cao hơn.

Vậy là xong, tiếp theo là cách để các bạn lấy License Key dạng mã base64.

Các tạo License Key

Ở phần Cách tạo Google Script chứa thông tin License Key thì mình đã nói một object gồm những thông tin như sau:

{"no":0,"name":"NLD Blog","url":"www.nldblog.com","id":"6311614170532925167","code":"nldblogcode"}

Thì ở đây License Key sẽ có cấu trúc bao gồm code-no ví dụ object ở trên License Key của mình sẽ là nldblogcode-0 chuyển sang dạng base64 nó sẽ thành bmxkYmxvZ2NvZGUtMA==.

Để chuyển License Key sang dạng base64 thì các bạn sử dụng công cụ sau Base64 Converter dán License Key dạng code-no vào và bấm Encode lúc này bạn sẽ nhận được 1 đoạn mã dạng base64. Để dịch ngược thì các bạn là tương tự rồi bấm Decode.

Kết luận

Vậy là xong, mình vừa hướng dẫn các bạn Cách tạo License Key cho template Blogger sử dụng JavaScript đơn giản để giúp bảo vệ template của các bạn khi bị người khác rip hoặc bán để tránh bị chia sẻ template. Nếu có vấn đề hay thắc mắc gì thì các bạn hãy comment xuống phía dưới mình sẽ giải đáp nếu có thể.

Comments

Call
0948713329
Contact Me on Zalo