小程序源碼加密
A. 家清網小程序安全嗎
小程序主要是存在以下幾種安全問題:1、授權隱藏風險2、釣魚竊密隱患3、山寨小程序泛濫。
授權隱藏風險:微信小程序充當應用開發者和用戶之間的橋梁,他們的信息交互通過微信平台轉發,因此所有網路請求和存儲的數據都可以通過微信獲得。一些小程序商家通過設置「登錄授權」來獲取用戶信息,從而「愚弄」用戶的授權,從而侵犯了用戶的權益。用戶反映在登錄某些小程序後,經常被提示綁定自己的手機號碼,否則就無法繼續瀏覽網頁。然而,一旦被捆綁,用戶就不斷接到廣告電話,嚴重擾亂了生活。
釣魚竊密隱患:隨著小程序的不斷推廣,將來每個人都將能夠參與製作小程序的過程。一旦非法企業開發網路釣魚微信小程序,在訪問過的頁面中添加木馬,並想方設法繞過微信審查,可能會導致用戶信息泄露和財產損失。
山寨程序泛濫:小應用程序的本質是網頁交互,它們的通信更容易破解。此外,小程序的源代碼很難混淆和加密,導致大量的假冒小程序。過去,開發這個假應用程序需要一周的時間,但是現在這個假應用程序可以在一兩天內啟動。此外,小程序可以通過「裂變」和「社會共享」傳播,這通常會導致「假」傳播得比「真」更快,用戶也更多。
B. 微信小程序怎麼做 RSA 加密
var input_rsa = this.data.input;
var encrypt_rsa = new RSA.RSAKey();
encrypt_rsa = RSA.KEYUTIL.getKey(publicKey);
encStr = encrypt_rsa.encrypt(input_rsa)
encStr = RSA.hex2b64(encStr);
console.log("加密結果:" + encStr)
資料來自CSDN:http://blog.csdn.net/ufo00001/article/details/72822907
C. 微信小程序怎麼設密碼
在線加密主要是在電腦端實現的不用安裝任何插件就可以觀看視頻,除了以上的12個功能外,還能限制只在特定的網站和域名下才能播放。這種只要電腦支持Flash播放,就可實現,不過這種方式做不到一機一碼綁定。離線加密是針對用戶在首次激活加密視頻的時候不能聯網,可以做成EXE客戶端直接安裝後,同時給用戶一個激活碼,完成綁定,這種方式下和常說的一機一碼聯系緊密。
APP加密就是在自有視頻播放類的APP中做上視頻加密,這種也可以做一機一碼,而且因為使用的是專用播放器,加密安全等級也很高。這種方式下,點量可以提供SDK方式的合作,也可以根據需要定製APP以及加密。
D. 求助,用c#寫了一個小程序,怎麼給它加密,實現一機一碼!
你自己寫加密演算法就行了啊,直接綁定電腦硬體就可以實現一機一碼了。
E. 怎樣可以把微信的小程序加密
1、下載MD5源文件(JS);
2、在小程序模塊中使用require引入外部模塊;也可以在index.html中直接全局引入md5.js文件。
因為源md5.js中沒有隊模塊因為輸出,如果使用require需要export,所以在md5.js中需要加入以下代碼:
mole.exports = {
hexMD5: hex_md5, //需要輸出的加密演算法,我這邊只寫了我需要得兩種
b64Md5: b64_md5,
}
在js文件中使用require引入md5:
const md5 = require('../../assets/js/md5/md5.js');
使用:
let b64 = md5.b64Md5(code); //code需要加密的數據
下面是我的文件結構:
md5.js 代碼如下;
/*
* A javaScript implementation of the RSA Data Security, Inc. MD5 Message
* Digest Algorithm, as defined in RFC 1321.
* Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
* Distributed under the BSD License
* See http://pajhome.org.uk/crypt/md5 for more info.
*/
/*
* Configurable variables. You may need to tweak these to be compatible with
* the server-side, but the defaults work in most cases.
*/
var hexcase =
0;
/* hex output format. 0 - lowercase; 1 - uppercase */
var b64pad =
"";
/* base-64 pad character. "=" for strict RFC compliance */
var chrsz =
8;
/* bits per input character. 8 - ASCII; 16 - Unicode */
/*
* These are the functions you'll usually want to call
* They take string arguments and return either hex or base-64 encoded strings
*/
function hex_md5(s){
return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
function b64_md5(s){
return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
function str_md5(s){
return binl2str(core_md5(str2binl(s), s.length * chrsz));}
function hex_hmac_md5(key, data) {
return binl2hex(core_hmac_md5(key, data)); }
function b64_hmac_md5(key, data) {
return binl2b64(core_hmac_md5(key, data)); }
function str_hmac_md5(key, data) {
return binl2str(core_hmac_md5(key, data)); }
/*
* Perform a simple self-test to see if the VM is working
*/
function md5_vm_test()
{
return hex_md5( "abc") ==
"";
}
/*
* Calculate the MD5 of an array of little-endian words, and a bit length
*/
function core_md5(x, len)
{
/* append padding */
x[len >>
5] |=
0x80 << ((len) %
32);
x[(((len +
64) >>>
9) <<
4) +
14] = len;
var a =
1732584193;
var b = - 271733879;
var c = - 1732584194;
var d =
271733878;
for( var i =
0; i < x.length; i +=
16)
{
var olda = a;
var oldb = b;
var oldc = c;
var oldd = d;
a = md5_ff(a, b, c, d, x[i+
0],
7 , - 680876936);
d = md5_ff(d, a, b, c, x[i+
1],
12, - 389564586);
c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
b = md5_ff(b, c, d, a, x[i+
3],
22, - 1044525330);
a = md5_ff(a, b, c, d, x[i+
4],
7 , - 176418897);
d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
c = md5_ff(c, d, a, b, x[i+
6],
17, - 1473231341);
b = md5_ff(b, c, d, a, x[i+
7],
22, - 45705983);
a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
d = md5_ff(d, a, b, c, x[i+
9],
12, - 1958414417);
c = md5_ff(c, d, a, b, x[i+ 10],
17, - 42063);
b = md5_ff(b, c, d, a, x[i+ 11],
22, - 1990404162);
a = md5_ff(a, b, c, d, x[i+ 12],
7 ,
1804603682);
d = md5_ff(d, a, b, c, x[i+ 13],
12, - 40341101);
c = md5_ff(c, d, a, b, x[i+ 14],
17, - 1502002290);
b = md5_ff(b, c, d, a, x[i+ 15],
22,
1236535329);
a = md5_gg(a, b, c, d, x[i+
1],
5 , - 165796510);
d = md5_gg(d, a, b, c, x[i+
6],
9 , - 1069501632);
c = md5_gg(c, d, a, b, x[i+ 11],
14,
643717713);
b = md5_gg(b, c, d, a, x[i+
0],
20, - 373897302);
a = md5_gg(a, b, c, d, x[i+
5],
5 , - 701558691);
d = md5_gg(d, a, b, c, x[i+ 10],
9 ,
38016083);
c = md5_gg(c, d, a, b, x[i+ 15],
14, - 660478335);
b = md5_gg(b, c, d, a, x[i+
4],
20, - 405537848);
a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
d = md5_gg(d, a, b, c, x[i+ 14],
9 , - 1019803690);
c = md5_gg(c, d, a, b, x[i+
3],
14, - 187363961);
b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
a = md5_gg(a, b, c, d, x[i+ 13],
5 , - 1444681467);
d = md5_gg(d, a, b, c, x[i+
2],
9 , - 51403784);
c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
b = md5_gg(b, c, d, a, x[i+ 12],
20, - 1926607734);
a = md5_hh(a, b, c, d, x[i+
5],
4 , - 378558);
d = md5_hh(d, a, b, c, x[i+
8],
11, - 2022574463);
c = md5_hh(c, d, a, b, x[i+ 11],
16,
1839030562);
b = md5_hh(b, c, d, a, x[i+ 14],
23, - 35309556);
a = md5_hh(a, b, c, d, x[i+
1],
4 , - 1530992060);
d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
c = md5_hh(c, d, a, b, x[i+
7],
16, - 155497632);
b = md5_hh(b, c, d, a, x[i+ 10],
23, - 1094730640);
a = md5_hh(a, b, c, d, x[i+ 13],
4 ,
681279174);
d = md5_hh(d, a, b, c, x[i+
0],
11, - 358537222);
c = md5_hh(c, d, a, b, x[i+
3],
16, - 722521979);
b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
a = md5_hh(a, b, c, d, x[i+
9],
4 , - 640364487);
d = md5_hh(d, a, b, c, x[i+ 12],
11, - 421815835);
c = md5_hh(c, d, a, b, x[i+ 15],
16,
530742520);
b = md5_hh(b, c, d, a, x[i+
2],
23, - 995338651);
a = md5_ii(a, b, c, d, x[i+
0],
6 , - 198630844);
d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
c = md5_ii(c, d, a, b, x[i+ 14],
15, - 1416354905);
b = md5_ii(b, c, d, a, x[i+
5],
21, - 57434055);
a = md5_ii(a, b, c, d, x[i+ 12],
6 ,
1700485571);
d = md5_ii(d, a, b, c, x[i+
3],
10, - 1894986606);
c = md5_ii(c, d, a, b, x[i+ 10],
15, - 1051523);
b = md5_ii(b, c, d, a, x[i+
1],
21, - 2054922799);
a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
d = md5_ii(d, a, b, c, x[i+ 15],
10, - 30611744);
c = md5_ii(c, d, a, b, x[i+
6],
15, - 1560198380);
b = md5_ii(b, c, d, a, x[i+ 13],
21,
1309151649);
a = md5_ii(a, b, c, d, x[i+
4],
6 , - 145523070);
d = md5_ii(d, a, b, c, x[i+ 11],
10, - 1120210379);
c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
b = md5_ii(b, c, d, a, x[i+
9],
21, - 343485551);
a = safe_add(a, olda);
b = safe_add(b, oldb);
c = safe_add(c, oldc);
d = safe_add(d, oldd);
}
return Array(a, b, c, d);
}
/*
* These functions implement the four basic operations the algorithm uses.
*/
function md5_cmn(q, a, b, x, s, t)
{
return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
}
function md5_ff(a, b, c, d, x, s, t)
{
return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
}
function md5_gg(a, b, c, d, x, s, t)
{
return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
}
function md5_hh(a, b, c, d, x, s, t)
{
return md5_cmn(b ^ c ^ d, a, b, x, s, t);
}
function md5_ii(a, b, c, d, x, s, t)
{
return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
}
/*
* Calculate the HMAC-MD5, of a key and some data
*/
function core_hmac_md5(key, data)
{
var bkey = str2binl(key);
if(bkey.length >
16) bkey = core_md5(bkey, key.length * chrsz);
var ipad = Array( 16), opad = Array( 16);
for( var i =
0; i <
16; i++)
{
ipad[i] = bkey[i] ^
0x36363636;
opad[i] = bkey[i] ^
0x5C5C5C5C;
}
var hash = core_md5(ipad.concat(str2binl(data)),
512 + data.length * chrsz);
return core_md5(opad.concat(hash),
512 +
128);
}
/*
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
* to work around bugs in some JS interpreters.
*/
function safe_add(x, y)
{
var lsw = (x &
0xFFFF) + (y &
0xFFFF);
var msw = (x >>
16) + (y >>
16) + (lsw >>
16);
return (msw <<
16) | (lsw &
0xFFFF);
}
/*
* Bitwise rotate a 32-bit number to the left.
*/
function bit_rol(num, cnt)
{
return (num << cnt) | (num >>> ( 32 - cnt));
}
/*
* Convert a string to an array of little-endian words
* If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
*/
function str2binl(str)
{
var bin = Array();
var mask = ( 1 << chrsz) -
1;
for( var i =
0; i < str.length * chrsz; i += chrsz)
bin[i>> 5] |= (str.charCodeAt(i / chrsz) & mask) << (i% 32);
return bin;
}
/*
* Convert an array of little-endian words to a string
*/
function binl2str(bin)
{
var str =
"";
var mask = ( 1 << chrsz) -
1;
for( var i =
0; i < bin.length *
32; i += chrsz)
str += String.fromCharCode((bin[i>> 5] >>> (i %
32)) & mask);
return str;
}
/*
* Convert an array of little-endian words to a hex string.
*/
function binl2hex(binarray)
{
var hex_tab = hexcase ?
"0123456789ABCDEF" :
"0123456789abcdef";
var str =
"";
for( var i =
0; i < binarray.length *
4; i++)
{
str += hex_tab.charAt((binarray[i>> 2] >> ((i% 4)* 8+ 4)) &
0xF) +
hex_tab.charAt((binarray[i>> 2] >> ((i% 4)* 8 )) &
0xF);
}
return str;
}
/*
* Convert an array of little-endian words to a base-64 string
*/
function binl2b64(binarray)
{
var tab =
"+/";
var str =
"";
for( var i =
0; i < binarray.length *
4; i +=
3)
{
var triplet = (((binarray[i >>
2] >>
8 * ( i % 4)) &
0xFF) <<
16)
| (((binarray[i+ 1 >>
2] >>
8 * ((i+ 1)% 4)) &
0xFF) <<
8 )
| ((binarray[i+ 2 >>
2] >>
8 * ((i+ 2)% 4)) &
0xFF);
for( var j =
0; j <
4; j++)
{
if(i *
8 + j *
6 > binarray.length *
32) str += b64pad;
else str += tab.charAt((triplet >>
6*( 3-j)) &
0x3F);
}
}
return str;
}
mole.exports = {
hexMD5: hex_md5,
b64Md5: b64_md5,
}
F. autoCAD平台上二次開發的一個小程序,想加密怎麼弄就是要激活碼才能用的那種。
給CAD二次開發的程序添加註冊模塊進行加密,我可以編寫程序來實現的,通過每台電腦唯一的機器碼來計算注冊碼,可以在不同電腦上安裝唯一使用的,你要嗎?
G. Java加密小程序
packagep1;
publicclassTestFibonacci
{
publicstaticfinalStringLETTER="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
privatestaticStringencryption(Stringw,Stringkey,Stringinfo)
{
if(key.length()!=5)
{
returnnull;
}
Stringother=LETTER.replaceAll("["+w+key+"]","");
String[]os=other.split("");
String[]ks=key.split("");
String[][]strs=newString[5][5];
System.array(ks,1,strs[0],0,strs[0].length);
for(inti=1;i<strs.length;i++)
{
intsrcPos=(i-1)*strs.length+1;
System.array(os,srcPos,strs[i],0,strs[i].length);
}
Stringopq=info.replaceAll("(..)","$1-");
String[]opqs=opq.split("\-");
Stringresult="";
for(inti=0;i<opqs.length;i++)
{
Stringtemp=opqs[i];
Stringa=temp.charAt(0)+"";
if(temp.length()==2)
{
Stringb=temp.charAt(1)+"";
introw1=0,col1=0,row2=0,col2=0;
for(intj=0;j<strs.length;j++)
{
for(intk=0;k<strs[j].length;k++)
{
if(a.equals(strs[j][k]))
{
row1=j;
col1=k;
}
if(b.equals(strs[j][k]))
{
row2=j;
col2=k;
}
}
}
result+=strs[row1][col2]+strs[row2][col1];
}
else
{
result+=a;
}
}
returnresult;
}
publicstaticvoidmain(String[]args)
{
Stringresult=encryption("J","BREAK","COMPUTERSCIENCE");
System.out.println(result);
}
}
H. 微信小程序要求HTTPS加密,如何選擇SSL證書
如何選擇SSL證書?
1、確定網站類型
綠色地址欄選超安:金融證券、銀行、第三方支付、網上商城等,重點強調網站安全和品牌可信形象的網站,涉及交易支付、客戶隱私信息和賬號密碼的傳輸,使用顯示綠色地址欄的超安EV SSL證書,安全可信一目瞭然。
驗證企業選超真:電子商務網站、企業網站,涉及注冊、登錄、會員中心等頁面,一定要使用超真OV SSL證書,支持顯示中文單位名稱和中文域名,利於品牌推廣,更容易贏得客戶信賴。
驗證域名選超快:需求急迫、無網站身份認證需求的個人網站,可採用超快DV SSL證書,只用於網站傳輸加密,10分快速簽發。
2、確定域名數量及類型
SSL證書是綁定域名的,一般情況下一個域名對應一張SSL證書,只有通配型證書和多域型證書才支持多個域名。
單域型:您只有單個域名需要使用SSL證書,可選擇任意一款沃通SSL證書,購買domain.com,支持www.domain.com,反之亦然。
多域型:多域型SSL證書支持任何域名。您有多個頂級域名完全不同的域名需要使用SSL證書(如:domain.com、ABC.com、123.com)請選擇支持多域名的SSL證書類型,沃通SSL證書產品都支持多域名,最多支持250個域名。
通配型:通配型證書只支持*.domain.com通配符子域名。您有多個頂級域名相同的子域名需要使用SSL證書,(如:A.domain.com、B.domain.com、C.domain.com等通配符域名),請選擇支持通配域名的SSL證書,沃通超真OV SSL證書支持通配域名,不限制子域名數量。
萬能型:萬能型SSL證書支持多域名和通配域名混合。既有多域型域名也有通配型域名需要使用SSL證書(如:A.domain.com、B.domain.com、ABC.com、123.com),請選擇支持萬能型域名的SSL證書,沃通超真OV SSL證書支持萬能型域名。
為了保護小程序應用安全,微信官方的需求文檔要求,每個微信小程序必須事先設置一個通訊域名,並通過HTTPS請求進行網路通信,不滿足條件的域名和協議無法請求。因此開發者應先准備好配置好HTTPS證書的域名,還沒有配置HTTPS要趕緊升級。
SSL證書申請推薦:網頁鏈接
I. 微信小程序怎樣加密
如何給微信加上程序加密
方法/步驟
1/7分步閱讀
打開安全中心界面,如圖
2/7
點下許可權隱私,打開許可權隱私界面,如圖
微信檢測刪除好友_批量添加好友_自動檢測僵屍粉
廣告
3/7
點下程序加密,打開程序加密界面,這時的程序加密還未開啟,如圖
4/7
按下開啟打開加密界面,完成密碼設置,如圖
查看剩餘1張圖
5/7
設置完密碼就完成程序加密開啟,如圖
6/7
點下加密程序進入到程序選擇界面找到微信,如圖
7/7
點下微信的開啟按鈕就完成微信的程序加密設置了,如圖