Hôm nay mình sẽ viết tuts mã hóa link cho các bạn, chức năng này chỉ hoạt động từ bản AncPlayer Media 5.0
Trong bản Ancplayer mới mình đã tích hợp chức năng mã hóa link khi sử dụng tuy nhiên bạn cần viết cho nó 1 dạng mã hóa có thể encode và decode được. Có rất nhiều phương pháp mã hóa thông thường sử dụng rất nhiều là base64. Tuy nhiên hôm nay mình sẽ hướng dẫn với kiểu Hex vì nó đơn giản hơn. Kiểu mã hóa này chỉ có chức năng tham khảo.
Hiện chức năng mã hóa link đối với blogspot vẫn phải mã hóa thủ công thông qua 1 file html, còn với wordpress có thể auto mã hóa link cho ai biết code. Chức năng mã hóa này chỉ giảm 1 phần lấy link thông qua Ctril+U còn view player thì vẫn ra từng link nhưng mất thời gian.
Xem demo và tool decode dạng hex
Để Ancplayer nhận biết được lệnh encode thì mình đã viết sãn cấu trúc là: encodeanc và decodeanc vì vậy công việc ta cần bây giờ là tạo nội dung để có thể get đc encodeanc và decodeanc thông qua 1 JS . file js này phải được đặt phía trên JS AncPlayer tốt nhất nên đặt dưới <head>
Vậy ta có bố cục file decode ở dạng hex như sau
<script type='text/javascript'>//<![CDATA[
function ntos(n){
n=n.toString(16);
if (n.length == 1) n="0"+n;
n="%"+n;
return unescape(n);
}
var digitArray = new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f');
function toHex(n){
var result = ''
var start = true;
for (var i=32; i>0;){
i-=4;
var digit = (n>>i) & 0xf;
if (!start || digit != 0){
start = false;
result += digitArray[digit];
}
}
return (result==''?'0':result);
}
function pad(str, len, pad){
var result = str;
for (var i=str.length; i<len; i++){
result = pad + result;
}
return result;
}
var hexv = {
"00":0,"01":1,"02":2,"03":3,"04":4,"05":5,"06":6,"07":7,"08":8,"09":9,"0A":10,"0B":11,"0C":12,"0D":13,"0E":14,"0F":15,
"10":16,"11":17,"12":18,"13":19,"14":20,"15":21,"16":22,"17":23,"18":24,"19":25,"1A":26,"1B":27,"1C":28,"1D":29,"1E":30,"1F":31,
"20":32,"21":33,"22":34,"23":35,"24":36,"25":37,"26":38,"27":39,"28":40,"29":41,"2A":42,"2B":43,"2C":44,"2D":45,"2E":46,"2F":47,
"30":48,"31":49,"32":50,"33":51,"34":52,"35":53,"36":54,"37":55,"38":56,"39":57,"3A":58,"3B":59,"3C":60,"3D":61,"3E":62,"3F":63,
"40":64,"41":65,"42":66,"43":67,"44":68,"45":69,"46":70,"47":71,"48":72,"49":73,"4A":74,"4B":75,"4C":76,"4D":77,"4E":78,"4F":79,
"50":80,"51":81,"52":82,"53":83,"54":84,"55":85,"56":86,"57":87,"58":88,"59":89,"5A":90,"5B":91,"5C":92,"5D":93,"5E":94,"5F":95,
"60":96,"61":97,"62":98,"63":99,"64":100,"65":101,"66":102,"67":103,"68":104,"69":105,"6A":106,"6B":107,"6C":108,"6D":109,"6E":110,"6F":111,
"70":112,"71":113,"72":114,"73":115,"74":116,"75":117,"76":118,"77":119,"78":120,"79":121,"7A":122,"7B":123,"7C":124,"7D":125,"7E":126,"7F":127,
"80":128,"81":129,"82":130,"83":131,"84":132,"85":133,"86":134,"87":135,"88":136,"89":137,"8A":138,"8B":139,"8C":140,"8D":141,"8E":142,"8F":143,
"90":144,"91":145,"92":146,"93":147,"94":148,"95":149,"96":150,"97":151,"98":152,"99":153,"9A":154,"9B":155,"9C":156,"9D":157,"9E":158,"9F":159,
"A0":160,"A1":161,"A2":162,"A3":163,"A4":164,"A5":165,"A6":166,"A7":167,"A8":168,"A9":169,"AA":170,"AB":171,"AC":172,"AD":173,"AE":174,"AF":175,
"B0":176,"B1":177,"B2":178,"B3":179,"B4":180,"B5":181,"B6":182,"B7":183,"B8":184,"B9":185,"BA":186,"BB":187,"BC":188,"BD":189,"BE":190,"BF":191,
"C0":192,"C1":193,"C2":194,"C3":195,"C4":196,"C5":197,"C6":198,"C7":199,"C8":200,"C9":201,"CA":202,"CB":203,"CC":204,"CD":205,"CE":206,"CF":207,
"D0":208,"D1":209,"D2":210,"D3":211,"D4":212,"D5":213,"D6":214,"D7":215,"D8":216,"D9":217,"DA":218,"DB":219,"DC":220,"DD":221,"DE":222,"DF":223,
"E0":224,"E1":225,"E2":226,"E3":227,"E4":228,"E5":229,"E6":230,"E7":231,"E8":232,"E9":233,"EA":234,"EB":235,"EC":236,"ED":237,"EE":238,"EF":239,
"F0":240,"F1":241,"F2":242,"F3":243,"F4":244,"F5":245,"F6":246,"F7":247,"F8":248,"F9":249,"FA":250,"FB":251,"FC":252,"FD":253,"FE":254,"FF":255
};
function decodeanc(str){
str = str.toUpperCase().replace(new RegExp("s/[^0-9A-Z]//g"));
var result = "";
var nextchar = "";
for (var i=0; i<str.length; i++){
nextchar += str.charAt(i);
if (nextchar.length == 2){
result += ntos(hexv[nextchar]);
nextchar = "";
}
}
return result;
}
//]]></script>
Vậy là xong file decode. Ancplayer bạn đã có chức năng decode link mã hóa
Tiếp đến là đến file encode link. file này mình sẽ làm ở dạng html để dùng trên pc hoặc up lên blog
khi cân mã hóa link bạn cần mở file này ra mã hóa link rồi coppy vào blogspot.
Với Wordpress có thể auto được. Với người biết code chắc không cần giải thích sẽ tự code đươc khi đọc qua bài này, vì vậy mình sẽ bỏ qua bước này với wordpress
Khi encode link mình có gắn ký hiệu anc* để AncPlayer nhận biết giải mã
link khi mã hóa dạng hết sẽ có dạng anc*Nội dung mã hóa
Vị dụ : anc*616e63706c617965722e636f6d
Đây là cấu trúc file các bạn lưu ở dạng html để sử dụng
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<style>
body{background:#fff;}
.button:hover{background:#064673}
.button{height:30px;background: #000 repeat-x;font-family:arial, serif;color:#FFF;font-size:12px;font-weight:700;cursor:pointer;margin:0 0 10px;padding:3px 10px 0}
</style>
<script>
function ntos(n){
n=n.toString(16);
if (n.length == 1) n="0"+n;
n="%"+n;
return unescape(n);
}
var digitArray = new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f');
function toHex(n){
var result = ''
var start = true;
for (var i=32; i>0;){
i-=4;
var digit = (n>>i) & 0xf;
if (!start || digit != 0){
start = false;
result += digitArray[digit];
}
}
return (result==''?'0':result);
}
function pad(str, len, pad){
var result = str;
for (var i=str.length; i<len; i++){
result = pad + result;
}
return result;
}
function encodeanc(str){
var result = "";
for (var i=0; i<str.length; i++){
result += pad(toHex(str.charCodeAt(i)&0xff),2,'0');
}
return result;
}
var hexv = {
"00":0,"01":1,"02":2,"03":3,"04":4,"05":5,"06":6,"07":7,"08":8,"09":9,"0A":10,"0B":11,"0C":12,"0D":13,"0E":14,"0F":15,
"10":16,"11":17,"12":18,"13":19,"14":20,"15":21,"16":22,"17":23,"18":24,"19":25,"1A":26,"1B":27,"1C":28,"1D":29,"1E":30,"1F":31,
"20":32,"21":33,"22":34,"23":35,"24":36,"25":37,"26":38,"27":39,"28":40,"29":41,"2A":42,"2B":43,"2C":44,"2D":45,"2E":46,"2F":47,
"30":48,"31":49,"32":50,"33":51,"34":52,"35":53,"36":54,"37":55,"38":56,"39":57,"3A":58,"3B":59,"3C":60,"3D":61,"3E":62,"3F":63,
"40":64,"41":65,"42":66,"43":67,"44":68,"45":69,"46":70,"47":71,"48":72,"49":73,"4A":74,"4B":75,"4C":76,"4D":77,"4E":78,"4F":79,
"50":80,"51":81,"52":82,"53":83,"54":84,"55":85,"56":86,"57":87,"58":88,"59":89,"5A":90,"5B":91,"5C":92,"5D":93,"5E":94,"5F":95,
"60":96,"61":97,"62":98,"63":99,"64":100,"65":101,"66":102,"67":103,"68":104,"69":105,"6A":106,"6B":107,"6C":108,"6D":109,"6E":110,"6F":111,
"70":112,"71":113,"72":114,"73":115,"74":116,"75":117,"76":118,"77":119,"78":120,"79":121,"7A":122,"7B":123,"7C":124,"7D":125,"7E":126,"7F":127,
"80":128,"81":129,"82":130,"83":131,"84":132,"85":133,"86":134,"87":135,"88":136,"89":137,"8A":138,"8B":139,"8C":140,"8D":141,"8E":142,"8F":143,
"90":144,"91":145,"92":146,"93":147,"94":148,"95":149,"96":150,"97":151,"98":152,"99":153,"9A":154,"9B":155,"9C":156,"9D":157,"9E":158,"9F":159,
"A0":160,"A1":161,"A2":162,"A3":163,"A4":164,"A5":165,"A6":166,"A7":167,"A8":168,"A9":169,"AA":170,"AB":171,"AC":172,"AD":173,"AE":174,"AF":175,
"B0":176,"B1":177,"B2":178,"B3":179,"B4":180,"B5":181,"B6":182,"B7":183,"B8":184,"B9":185,"BA":186,"BB":187,"BC":188,"BD":189,"BE":190,"BF":191,
"C0":192,"C1":193,"C2":194,"C3":195,"C4":196,"C5":197,"C6":198,"C7":199,"C8":200,"C9":201,"CA":202,"CB":203,"CC":204,"CD":205,"CE":206,"CF":207,
"D0":208,"D1":209,"D2":210,"D3":211,"D4":212,"D5":213,"D6":214,"D7":215,"D8":216,"D9":217,"DA":218,"DB":219,"DC":220,"DD":221,"DE":222,"DF":223,
"E0":224,"E1":225,"E2":226,"E3":227,"E4":228,"E5":229,"E6":230,"E7":231,"E8":232,"E9":233,"EA":234,"EB":235,"EC":236,"ED":237,"EE":238,"EF":239,
"F0":240,"F1":241,"F2":242,"F3":243,"F4":244,"F5":245,"F6":246,"F7":247,"F8":248,"F9":249,"FA":250,"FB":251,"FC":252,"FD":253,"FE":254,"FF":255
};
function decodeanc(str){
str = str.toUpperCase().replace(new RegExp("s/[^0-9A-Z]//g"));
var result = "";
var nextchar = "";
for (var i=0; i<str.length; i++){
nextchar += str.charAt(i);
if (nextchar.length == 2){
result += ntos(hexv[nextchar]);
nextchar = "";
}
}
return result;
}
function encrypt() {
document.getElementById("resulttext").innerHTML = "K\u1ebft qu\u1ea3 m\u00e3 h\u00f3a:";
document.ancconvert.T2.value = "anc*" + encodeanc(document.ancconvert.T1.value);
return false
}
function decrypt() {
if(document.ancconvert.T1.value.indexOf("anc*") != -1 && document.ancconvert.T1.value.indexOf("helloximo*") < 0) {
document.getElementById("resulttext").innerHTML = "K\u1ebft qu\u1ea3 m\u00e3 h\u00f3a:";
document.ancconvert.T2.value = decodeanc(document.ancconvert.T1.value.replace(/anc\*/gi, ""))
}
return false
}
;
</script>
<div style="text-align: left;margin-top: 01px; width: 610px;" >
<form method="POST" name="ancconvert" onsubmit="return encrypt();">
<div style="text-align: center;"><b>Mã hóa link dạng Hex - Code by: nguagovt - <a href="http://www.ancplayer.com">http://www.ancplayer.com</a></b></div><br />
<div style="text-align: center;"><b>Nội dung cần Mã hóa/Giải mã:</b></div>
<div style="text-align: center;">
<textarea class="textarea" name="T1" onchange="encrypt()" style="height: 160px; margin-bottom: 2px; margin-left: 2px; margin-right: 2px; margin-top: 2px; width: 570px;"></textarea></div>
<br />
<div id="resulttext" style="font-weight: bold;text-align: center;">Kết quả mã hóa:</div>
<br />
<div style="text-align: center;">
<textarea class="textarea" name="T2" onchange="encrypt()" style="height: 160px; margin-bottom: 2px; margin-left: 2px; margin-right: 2px; margin-top: 2px; width: 570px;"></textarea>
<br /><br /></div>
<input style="margin-left:200px;" class="button" onclick="encrypt(this)" onhover="this.select()" type="button" value="Mã hóa" /> <input class="button" onclick="decrypt()" type="button" value="Giải mã" /></form>
<br/>
Xem hướng dẫn viết key mã hóa dạng khác tại http://www.ancplayer.com<br/>
Vui lòng coppy link để tác giả và link dẫn tới AncPlayer. Thank !
</div>
Bạn cần mã hóa file decode và để sao người khác không biết nếu không họ sẽ viết được tool decode link . Việc ẩn dấu js này rất quan trọng tùy vào khả năng mỗi người.
Nên rút gọn js = closure-compiler.appspot.com rồi mã hóa ở đây javascriptobfuscator.com/Javascript-Obfuscator.aspx
Vậy là xong. Các bạn có thể download 2 file trên để tìm hiểu kỹ hơn
Bài viết liên quan:
https://severphim.blogspot.com/2016/03/tuts-viet-ma-hoa-link-cho-ancplayer.html
khó hiểu quá, rút gọn js closure-compiler.appspot.com bị lỗi
Trả lờiXóaBạn có thể test tại đây: Mã hóa link AncPlayer Media
XóaMã hóa rồi add vô đâu cho nó chạy được, mã hóa link phim
XóaBạn nên xen đoạn này:Vậy ta có bố cục file decode ở dạng hex như sau
XóaNhận xét này đã bị tác giả xóa.
Trả lờiXóa