Trình tạo giấy phép Javascript trên Blogger

Trình tạo giấy phép Javascript

Trình tạo giấy phép

Generate Activation Code

Cài đặt trình tạo giấy phép này trên trang tĩnh mà không cần phải chỉnh sửa bất cứ điều gì.

<style>
.hidden {
  display:none;
}
.card {
    position: relative;
    display: block;
    margin: 0 auto;
    text-align: center;
    width: 100%;
    max-width: 800px;
    margin-bottom: 0.75rem;
    background-color: #ffffff;
    border-radius: 0.25rem;
    border: 1px solid rgba(0,0,0,.125);
}
.card-header.card-primary {
    background-color: #f89000;
    color: #ffffff;
    border-color: #f89000;
    padding: 10px;
    margin-bottom: 10px;
    border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;
}
.card-header.card-primary h2 {
    padding: 0;
    margin: 0;
}
  
.form-control {
    position: relative;
    display: block;
    width: calc(100% - 35px);
    margin: 10px auto;
    padding: 0.5rem 0.75rem;
    font-size: 1rem;
    line-height: 1.25;
    color: #333333;
    background-color: #ffffff;
    border: 1px solid rgba(0,0,0,.15);
    border-radius: 0.25rem;
    outline: 0;
}
  
button.btn.btn-primary {
    padding: 10px 25px;
    background-color: #f89000;
    color: #ffffff;
    border:none;
    border-radius:3px;
    margin:10px auto;
}
</style>

<div class="card">
<div class="card-header card-primary">
<h2>
<strong>Generate Activation Code</strong></h2>
</div> 
<input class="form-control" id="inputName" required="required" type="text" placeholder="Blog Url" autocomplete="off"/>
<input class="form-control" id="inputKode" required="required" type="text" placeholder="Unique Code" autocomplete="off"/>
<button class="btn btn-primary" id="getLisensi" type="button">
<strong>Get License</strong></button>
<div class="hasilku hidden">
<input class="form-control" id="hasilLisensi" type="text"/>
<button class="btn btn-primary copyLisen" type="button"><strong>Copy</strong></button>
</div>
</div>

<script>
/*<![CDATA[*/
var Base64={_keyStr:"FGHIJKLTUVABCDEMNOPQRSWXYZhijklmarstuvwxyzbcdefgnopq0123456789+/=",encode:function(r){var t,e,o,a,h,n,c,d="",C=0;for(r=Base64._utf8_encode(r);C<r.length;)a=(t=r.charCodeAt(C++))>>2,h=(3&t)<<4|(e=r.charCodeAt(C++))>>4,n=(15&e)<<2|(o=r.charCodeAt(C++))>>6,c=63&o,isNaN(e)?n=c=64:isNaN(o)&&(c=64),d=d+this._keyStr.charAt(a)+this._keyStr.charAt(h)+this._keyStr.charAt(n)+this._keyStr.charAt(c);return d},decode:function(r){var t,e,o,a,h,n,c="",d=0;for(r=r.replace(/[^A-Za-z0-9\+\/\=]/g,"");d<r.length;)t=this._keyStr.indexOf(r.charAt(d++))<<2|(a=this._keyStr.indexOf(r.charAt(d++)))>>4,e=(15&a)<<4|(h=this._keyStr.indexOf(r.charAt(d++)))>>2,o=(3&h)<<6|(n=this._keyStr.indexOf(r.charAt(d++))),c+=String.fromCharCode(t),64!=h&&(c+=String.fromCharCode(e)),64!=n&&(c+=String.fromCharCode(o));return c=Base64._utf8_decode(c)},_utf8_encode:function(r){r=r.replace(/\r\n/g,"\n");for(var t="",e=0;e<r.length;e++){var o=r.charCodeAt(e);o<128?t+=String.fromCharCode(o):o>127&&o<2048?(t+=String.fromCharCode(o>>6|192),t+=String.fromCharCode(63&o|128)):(t+=String.fromCharCode(o>>12|224),t+=String.fromCharCode(o>>6&63|128),t+=String.fromCharCode(63&o|128))}return t},_utf8_decode:function(r){for(var t="",e=0,o=c1=c2=0;e<r.length;)(o=r.charCodeAt(e))<128?(t+=String.fromCharCode(o),e++):o>191&&o<224?(c2=r.charCodeAt(e+1),t+=String.fromCharCode((31&o)<<6|63&c2),e+=2):(c2=r.charCodeAt(e+1),c3=r.charCodeAt(e+2),t+=String.fromCharCode((15&o)<<12|(63&c2)<<6|63&c3),e+=3);return t}};

// generator lisensi
document.querySelector("#getLisensi").addEventListener('click',gnrt);
function gnrt() {
var inputName = document.querySelector('#inputName').value;
var inputKode = document.querySelector('#inputKode').value;
var nameBase = inputName + inputKode;
var nameHasil = Base64.encode(nameBase);
document.querySelector('#hasilLisensi').value = nameHasil;
document.querySelector('.hasilku').classList.remove("hidden")
}
  
// copy
document.querySelector('.copyLisen').addEventListener('click',copasykuy);
      function copasykuy() {
      document.querySelector('#hasilLisensi').select(),document.execCommand('copy');
      location.reload(); // reload
  }
/*]]>*/</script>

Tập lệnh Cấp phép

Giấy phép người dùng đầu vào html, bạn có thể đặt nó bên trong thẻ <body

<div class='license' style='display:none'> <!-- enter your license here --> </div>

Bạn có thể tạo giấy phép dựa trên URL BLOG hoặc TÊN BLOG hoặc ID BLOG, chúng tôi sử dụng thẻ meta để truy xuất dữ liệu từ người dùng như url blog, tên blog hoặc id blog.

Tag Meta

Vui lòng chọn và cài đặt mã thẻ META dưới mã <head> (chỉ chọn một mã).

<!-- blog url meta tags -->
<meta expr:content='data:blog.homepageUrl.canonical' property='blogUrl'/>

<!-- blog name meta tag, if this code already exists in the template, skip this step -->
<meta expr:content='data:blog.title.escaped' property='og:site_name'/>

<!-- blog name meta tag id-->
<meta expr:content='data:blog.blogId' property='blogId'/>

var uniqueCode = "tes123"; //unique code (must be encoded using the base64 tools that you get in the package)
var wrongLicense = "<style>a{color:#f89000}.wrongPop{z-index:9999999999999999999999999999!important;display:block!important;opacity:1!important;visibility:visible!important;width:calc(100% - 100px);max-width:500px;position:fixed;background:#fefefe;border-radius:10px;border:1px solid #eee;color:#262d3d;text-align:center;padding:35px;top:150px;left:0;right:0;margin:0 auto;box-shadow:0 10px 20px rgba(0,0,0,0.2);}</style><div class='wrongPop'><svg style='fill:#e00000;width:50px;height:50px' viewBox='0 0 24 24'><path d='M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z'/></svg><h3>Akses Diblokir</h3><p>domain anda ( <span id='blogName'></span> ) tidak terdaftar.</p><a href='https://www.wendycode.com/p/kontak-kami.html'>Hubungi Admin</a></div>"; //html popup (must be encoded using the base64 tools you get in the package)

var bs64={_keyStr:"FGHIJKLTUVABCDEMNOPQRSWXYZhijklmarstuvwxyzbcdefgnopq0123456789+/=",encode:function(r){var t,e,o,a,h,n,c,d="",C=0;for(r=bs64._utf8_encode(r);C<r.length;)a=(t=r.charCodeAt(C++))>>2,h=(3&t)<<4|(e=r.charCodeAt(C++))>>4,n=(15&e)<<2|(o=r.charCodeAt(C++))>>6,c=63&o,isNaN(e)?n=c=64:isNaN(o)&&(c=64),d=d+this._keyStr.charAt(a)+this._keyStr.charAt(h)+this._keyStr.charAt(n)+this._keyStr.charAt(c);return d},decode:function(r){var t,e,o,a,h,n,c="",d=0;for(r=r.replace(/[^A-Za-z0-9\+\/\=]/g,"");d<r.length;)t=this._keyStr.indexOf(r.charAt(d++))<<2|(a=this._keyStr.indexOf(r.charAt(d++)))>>4,e=(15&a)<<4|(h=this._keyStr.indexOf(r.charAt(d++)))>>2,o=(3&h)<<6|(n=this._keyStr.indexOf(r.charAt(d++))),c+=String.fromCharCode(t),64!=h&&(c+=String.fromCharCode(e)),64!=n&&(c+=String.fromCharCode(o));return c=bs64._utf8_decode(c)},_utf8_encode:function(r){r=r.replace(/\r\n/g,"\n");for(var t="",e=0;e<r.length;e++){var o=r.charCodeAt(e);o<128?t+=String.fromCharCode(o):o>127&&o<2048?(t+=String.fromCharCode(o>>6|192),t+=String.fromCharCode(63&o|128)):(t+=String.fromCharCode(o>>12|224),t+=String.fromCharCode(o>>6&63|128),t+=String.fromCharCode(63&o|128))}return t},_utf8_decode:function(r){for(var t="",e=0,o=c1=c2=0;e<r.length;)(o=r.charCodeAt(e))<128?(t+=String.fromCharCode(o),e++):o>191&&o<224?(c2=r.charCodeAt(e+1),t+=String.fromCharCode((31&o)<<6|63&c2),e+=2):(c2=r.charCodeAt(e+1),c3=r.charCodeAt(e+2),t+=String.fromCharCode((15&o)<<12|(63&c2)<<6|63&c3),e+=3);return t}};
 
var license = document.querySelector("meta[property='blogUrl']").getAttribute("content"); // url blog
/* var license = document.querySelector("meta[property='og:site_name']").getAttribute("content"); // blog name  */
/* var license = document.querySelector("meta[property='blogId']").getAttribute("content"); // blog id */
  
var userLicense = document.querySelector('.license');
var blgUnk = license + bs64.decode(uniqueCode);
var joinUnk = bs64.encode(blgUnk);
 
function wrongDetected(){
var bdyt = document.getElementsByTagName('BODY')[0];
bdyt.innerHTML +=bs64.decode(wrongLicense);
bdyt.setAttribute('oncontextmenu', 'return false');
document.getElementById('license').innerHTML = window.location.hostname;
}
  
if (document.querySelectorAll('.license').length === 0){ // blog name if the license div is removed
  wrongDetected();
  
}else if (userLicense.innerHTML.length <= uniqueCode.length){ // if the license is shorter or equal to the unique code
  wrongDetected();
 
}else if (userLicense.innerHTML != joinUnk){ // if the license is wrong
  wrongDetected();
 
}else{
// wrap your js inside here
console.log('correct license')
  
}

Một mô tả ngắn gọn

tes123 là mã duy nhất bạn có thể tự do đặt tên bất kỳ hoặc đặt tên mẫu của bạn, mã duy nhất để phân biệt mẫu 1 và mẫu 2 để chúng không giống nhau. sau khi bạn chỉnh sửa nó, nó phải được mã hóa lại bằng các công cụ base64 mà bạn có trong gói để cấp phép
// before
var uniqueCode = "tes123";

//after
var uniqueCode = "kLSqCQUq";

Cũng như đoạn mã dưới đây, sau khi bạn chỉnh sửa xong nó phải được mã hóa như trên trước đó.

// before
var wrongLicense = "<style>a{color:#f89000}.wrongPop{z-index:9999999999999999999999999999!important;display:block!important;opacity:1!important;visibility:visible!important;width:calc(100% - 100px);max-width:500px;position:fixed;background:#fefefe;border-radius:10px;border:1px solid #eee;color:#262d3d;text-align:center;padding:35px;top:150px;left:0;right:0;margin:0 auto;box-shadow:0 10px 20px rgba(0,0,0,0.2);}</style><div class='wrongPop'><svg style='fill:#e00000;width:50px;height:50px' viewBox='0 0 24 24'><path d='M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z'/></svg><h3>Akses Diblokir</h3><p>domain anda ( <span id='blogName'></span> ) tidak terdaftar.</p><a href='https://www.wendycode.com/p/kontak-kami.html'>Hubungi Admin</a></div>"; //popup html ( wajib di encode menggunakan tools base64 yang kalian dapatkan di paket )


//after
var wrongLicense = "MTD0lWovMwK7Y29di3U6U2Y4EQFnCT0fk3VgiwkNi3G7ls1ziwOvlIy5EQu5EQu5EQu5EQu5EQu5EQu5EQu5EQu5EQu5UWvejL9pkLKfkIeuhXDniLK5EwVdi2DcUWvejL9pkLKfkIegjLKthXO5EtJrhW1ni3V0YW50E3Zzj2vshWozkTu6kwvqhWVdZPKziXGgjxOrixN7k2vukLa6Y2KdYpaoCIFvUH0aCQFnjTazE21rlH13hWO0hIy1CIGnlIeni3DzkLvgitzwhXrvZIesYWDcZ3VgkW5uEsDwZWZvZwR7Yw9pZLSpBXVrZLv1jqyoCTG4E2VgjwOvjtyojTaaj29dhWNaU2SvZQeti2ogjtytCtYpZIDuE3OvlTNeYWozZ246Y2SfkLSpE3GrZLOziwj6CqSnlIe0i3F6CQRnjTa7iLSwkIynE3VzZ2r0EtF7iWKpZ2vfEtFaYXS0iqesi3aej2rrZL93EtFaCQGnlHFpCTG4UTVxYwJyCHnnBIFdCH4pAQe9MH9qkTvdZQ48ZLv2ULDdYXDqMPk3jw9fZ1GgjHj+MTD2ZpGqkTvdZQ0xZwvdiIytZQFnCIFnE3kzZTOyEtRnjTa7hLSzZ2r0EtRnjTaxUTZzZXkHi3a9VqFaCHFpDHFpDHj+MTGrkLaaZI0xQQJpBIJ3NQUdCsFnUIFdCHFoDHnoDRCoDHnoCp44EPFoCp4oBIJqUIJpBIJqNQUdCsFnUIFdCHFoCHnoDRJpBIUaCHFnBIFaCQUdCQkDCQadEJJpBIUaCHFnBIJaCtFdCQGWCtGGCsnpUIFaCHnoUIJ4BIUpPIZGCsnpUIFaCHnoUINdCtGWCQGIDHn4Bta5UINfEPn4UIYdEJa3StZGDPn1UIFaCHnoUIJpBIKGDPn1UIFaCHnoUIJ3BIZWEJaoEJ0oCsnqNQCdCpFnUIFdCHF5BIZWEJaoDSY2NQCdCpFnUIFdCHFoCsnqWsjgMtngj3ZxMtoyCq5Gh3DvjpGJhWVdi2ezjtnghIC+MTF+ZL9eYWvfULKfZLJaAHF8j3GrisGzZI0xYwogZ05riWRxMtngj3Grit4aAPG0hWOrhpG0ZXVuYWZ0YXUfMH9nMtorULrpZWY9V2r0kTGqEs8gk3k3BxkviwO5Y29uZP5ti20gjH9ci250YWdeh2KehP5ykL1dVq5UkWV1iwkzUJKuiWvfMH9rMtngZLv2Ma=="; //popup html ( wajib di encode menggunakan tools base64 yang kalian dapatkan di paket )

Khóa base64 tùy chọn này ở dạng bí mật, bạn có thể ngẫu nhiên hóa nó để kết quả đầu ra khác nhau và đừng quên thay đổi phần này trong các công cụ của trình tạo, nếu bạn hiểu một chút javascript bạn có thể cắt đoạn mã này thành 2 - 4 phần và sau đó kết hợp nó lại bằng cách sử dụng (nối), để sau này nếu bạn thêm nó Khóa enscrypt của bạn sẽ không dễ đọc.

FGHIJKLTUVABCDEMNOPQRSWXYZhijklmarstuvwxyzbcdefgnopq0123456789+/=
//example cut into 4 parts and recombine with (join)
var keyO = ['FGHIJKLTUVABCDE','NOPQRSWXYZhijklmarstuv'];
var keyT = ['wxyzbcdefgnop','0123456789+/='];
var jkeyO = keyO.join("M");
var jkeyT = keyT.join("q");

var Base64={_keyStr:jkeyO + jkeyT

Theo mặc định, giấy phép sẽ sửa URL BLOG, bạn cũng có thể chọn tên blog hoặc id blog bằng cách xóa thẻ nhận xét / * ... * / bên dưới để kích hoạt nó, (chỉ kích hoạt một)

var license = document.querySelector("meta[property='blogUrl']").getAttribute("content"); // url blog
/* var license = document.querySelector("meta[property='og:site_name']").getAttribute("content"); // blog name */
/* var license = document.querySelector("meta[property='blogId']").getAttribute("content"); // blog id */

Cuối cùng là kết hợp / quấn javascript của bạn vào đây, để khi người dùng xóa thẻ meta, tập lệnh sẽ không bao giờ được thực thi.

}else{
// wrap your js inside here
console.log('correct license')
  
}

Sau khi bạn kết hợp nó với js của bạn, đừng quên mã hóa tất cả các tập lệnh ở trên để người khác không dễ dàng biết được giấy phép, bạn có thể bọc nó lên đến 2x để không dễ giải mã.

Đề xuất các công cụ mã hóa javascript, trong phần (Mã hóa mảng chuỗi) hãy bật Base64 và RC4 để kết quả mã hóa không dễ giải mã.

Tôi là Nhật Nguyễn, một kỹ sư xây dựng. Nhưng thích tìm hiểu về mã nguồn lập trình web ☏.