如何給代碼加密
A. excel2010vba加密的方法
在 Excel 中除了可以利用設置外還可以利用VBA編程進行加密,利用VBA編程可以令加密更加嚴謹,下面是由我分享的excel2010 vba加密的 方法 ,希望對你有用。
excel2010 vba加密的方法利用VBA加密步驟1:對想發布自己的Excel VBA的開發者來說,Excel VBA本身不提供VBA代碼的加密,封裝。目前比較最可靠的Excel VBA代碼加密的方法,就是把VBA代碼編譯成DLL(動態鏈接庫文件),在VBA中調用,從而實現VBA代碼的加密,封裝,方便和Excel文件整合發布出去。DLL文件基本沒法被破解,除此之外其他的VBA加密方法,都可以被輕易破解。用戶只需要你的Excel文件,和這個dll文件就夠了,不必安裝其他任何程序。
利用VBA加密步驟2:編譯成DLL文件其實很簡單。機子上安裝Visual Basic 6.0就可以編譯成dll文件了,Visual Basic .Net反倒有點麻煩。Visual Basic通過OLE(對象鏈接引擎)技術調用Excel以及其中的對象。
利用VBA加密步驟3:總的來說,VBA代碼只要做一些簡單修改就可以了。主要是對Excel對象的引用,不然VB不能識別vba代碼中的對象。比如如下的VBA代碼
windows(workbook1).activate
range("L50")=1
直接放進VB中編譯成Dll就會有問題,因為VB不能直接識別range對象。
需要添加幾行簡單的代碼來告訴vb怎麼引用excel中的這些對象:
dim xlapp as excel.applicatiion
dim xlbook as excel.workbook
dim xlsheet as excel.worksheet
set xlapp=getobject(,"excel.application)
set xlbook=getobject(xxx)
set xlsheet=xlbook.worksheets(1)
利用VBA加密步驟4:然後就照搬你原有的vba代碼,但是前面加上對象引用:
xlsheet.range("L50")=1
利用VBA加密步驟5:對VBA代碼做這樣修改,在VB中調試通過,就可以成功的把多個sub子程序全部編譯封裝在一個單獨的DLL文件了。以後直接在VBA中引用這個DLL文件中的各個sub子程序。原來大段的VBA代碼全部被封裝在DLL文件中,對用戶不可見。
利用VBA加密步驟6:開發者還可以在程序運行前顯示軟體的版權信息,設置密碼。因為這些也封裝在DLL文件中,所以用戶沒法破解。
EXCEL中如何控制每列數據的長度並避免重復錄入1、用數據有效性定義數據長度。
用滑鼠選定你要輸入的數據范圍,點"數據"->"有效性"->"設置","有效性條件"設成"允許""文本長度""等於""5"(具體條件可根據你的需要改變)。
還可以定義一些提示信息、出錯警告信息和是否打開中文輸入法等,定義好後點"確定"。
2、用條件格式避免重復。
選定A列,點"格式"->"條件格式",將條件設成“公式=COUNTIF($A:$A,$A1)>1”,點"格式"->"字體"->"顏色",選定紅色後點兩次"確定"。
這樣設定好後你輸入數據如果長度不對會有提示,如果數據重復字體將會變成紅色。
B. 如何給代碼加密
進入js在線加密工具
把要加密的代碼復制到這個框中
得到加密後的代碼
右鍵點擊復制
回到桌面,創建一個文件
命名為funs.js
如果不能更新文件名後綴,可以打開任意一個文件夾,左側-組織-文件夾和搜索選項-隱藏已知文件的擴展名,取消勾選
右鍵點擊文件funs.js,選擇編輯,然後將加密後的js文件復制到這里,保存即可
C. 如何給代碼加密
推薦試試IP-guard
IP-guard支持對多種類型源代碼進行自動加密保護,不需要用手手動操作,而只要在部署了IP-guard的授權環境下,用戶就可以正常打開使用加密了的源代碼,而脫離了授權環境則無法打開,這樣即使泄露出去也不用擔心泄密發生
IP-guard的加密基於驅動層和應用層,所以在加密強度上能得到保證,建議不要只上加密,對於防泄密,員工的上網行為、桌面操作行為最好也進行管控。
D. 如何對公司的源代碼加密
對公司源代碼加密的話 我推薦使用域之盾軟體 以下是軟體加密的具體流程 希望可以幫到你。
1,首先安裝軟體 安裝完成後 開啟 透明加密。對重要文件進行加密。
2,通過 軟體限制陌生u盤的試用,設置只讀或禁止使用。對常用U盤設置白名單
3,開啟軟體的外發審核,外發的一切文件資料 等 需要管理員審核否則非法外發 即為亂碼。
E. 如何給php代碼加密
前台加密
後台接收到後
在和鹽值拼接
在加密
存入資料庫
我用md5舉例
前台:md5(pwd);
//前台找一個js加密擴展就行
後台:
$salt
=
mt_rand(100000,999999);
//隨機鹽值
$pwd
=
md5($_GET('pwd').$salt);
//這樣雙重加密後入庫了
登錄驗證時
前台也記得加密哦
F. 如何給代碼加密
下面是一個Step by Step的教程,教你如何把一個清晰的代碼變得復雜難懂的。當然,這只是一個「簡明教程」了。還是那句話——「本文僅供朋友們「消遣作樂」,如果你要覺得有意思的話,頂個貼。如果你覺得沒什麼意思的話,一笑了之。僅供娛樂而已,不必太過認真。」
開始程序
下面是一個找出素數的程序:void primes(int cap)
{
int i, j, composite;
for(i = 2; i < cap; ++i) {
composite = 0;
for(j = 2; j * j < i; ++j) {
composite += !(i % j);
}
if(!composite){
printf("%dt", i);
}
}
}
int main()
{
primes(100);
}
下面我們來看看如何把上面這段代碼搞得復雜難懂。
第一步、把for變成while
通常來說,for循壞要以while循壞簡單一些,上面的程序有二重for循環,我們不但要把其變成while循環,而且還要把二重循環的變成一重的循環,然後使用大量的if-else語句來判斷。void primes(int cap)
{
int i, j, composite, t = 0;
while(t < cap * cap) {
i = t / cap;
j = t++ % cap;
if(i <= 1);
else if(!j)
composite = j;
else if(j == i && !composite)
printf("%dt",i);
else if(j > 1 && j < i)
composite += !(i % j);
}
}
int main()
{
primes(100);
}
第二步,把循壞變成遞歸
遞歸在某些時候是可以把代碼變得簡單,但大多數的情況下是把代碼變得復雜,而且很沒有效率。下面是把上面的while循環變成了遞歸。變成了遞歸後,函數的參數都變成3個了。void primes(int cap, int t, int composite)
{
int i,j;
i = t / cap;
j = t % cap;
if(i <= 1)
primes(cap,t+1,composite);
else if(!j)
primes(cap,t+1,j);
else if(j == i && !composite)
(printf("%dt",i), primes(cap,t+1,composite));
else if(j > 1 && j < i)
primes(cap,t+1, composite + !(i % j));
else if(t < cap * cap)
primes(cap,t+1,composite);
}
int main()
{
primes(100,0,0);
}
第三步,弄亂代碼結構/使用沒有含義的變數名
關於如何弄亂代碼結構,其中一個小技巧是,使用「?」表達式代替if-else語句。void primes(int m, int t, int c)
{
int i,j;
i = t / m;
j = t % m;
(i <= 1) ? primes(m,t+1,c) : (!j) ? primes(m,t+1,j) : (j == i && !c) ?
(printf("%dt",i), primes(m,t+1,c)) : (j > 1 && j < i) ?
primes(m,t+1,c + !(i % j)) : (t < m * m) ? primes(m,t+1,c) : 0;
}
int main()
{
primes(100,0,0);
}
第四步,取消臨時變數
臨時變數一般用來保存反復使用的一個表達式的值。使用大量重復的表達式來取消這些臨時變數的也可以讓代碼復雜起來。void primes(int m, int t, int c)
{
((t / m) <= 1) ? primes(m,t+1,c) : !(t % m) ? primes(m,t+1, t % m) :
((t % m)==(t / m) && !c) ? (printf("%dt",(t / m)), primes(m,t+1,c)) :
((t % m)> 1 && (t % m) < (t / m)) ? primes(m,t+1,c + !((t / m) % (t % m))) :
(t < m * m) ? primes(m,t+1,c) : 0;
}
int main()
{
primes(100,0,0);
}
第五步,繼續弄亂變數名
我們知道,下劃線是合法的變數名,所以,我們不妨用__,___,____來代替m,t,c。函數名也可以使用下劃線來代替。讓我們來看看求素數的函數能變成什麼。
void _(int __, int ___, int ____)
{
((___ / __) <= 1) ? _(__,___+1,____) : !(___ % __) ? _(__,___+1,___ % __) :
((___ % __)==(___ / __) && !____) ? (printf("%dt",(___ / __)),
_(__,___+1,____)) : ((___ % __) > 1 && (___ % __) < (___ / __)) ?
_(__,___+1,____ + !((___ / __) % (___ % __))) : (___ < __ * __) ?
_(__,___+1,____) : 0;
}
int main()
{
_(100,0,0);
}
第六步,移除常量
在上面的程序中,還有一些常量,你可以通過增加一個宏定義,或是增加一個函數的形參來取代這一常量。void _(int __, int ___, int ____, int _____)
{
((___ / __) <= _____) ? _(__,___+_____,____,_____) : !(___ % __) ? _(__,___+_____,___ % __, _____) :
((___ % __)==(___ / __) && !____) ? (printf("%dt",(___ / __)),
_(__,___+_____,____,_____)) : ((___ % __) > _____ && (___ % __) < (___ / __)) ?
_(__,___+_____,____,_____ + !((___ / __) % (___ % __))) : (___ < __ * __) ?
_(__,___+_____,____,_____) : 0;
}
int main() {
_(100,0,0,1);
}
程序到這里應該差不多了。還是那句話——「每一個程序員都有把源代碼弄復雜的潛質」,大家好自為之。
轉載
G. 給Excel2007 VBA代碼加密的方法
方法/步驟
1、打開Excel2007啟用宏的Excel文件
2、同時按下ALT+F11鍵,打開VBA編輯器窗口。
3、查看對應的代碼窗口,左側VBA工程
PROJECT屬性框中對應相應的SHEET表或者模塊。
4、點擊對應的SHEET表或者模塊名稱,滑鼠右鍵放在其上,選擇VBAPROJECT屬性。
5、在彈出的VBAPROJECT工程屬性窗口中-保護選項卡-選中查看時鎖定工程,“查看工程屬性的密碼”內輸入自己要設定的密碼。
6、點擊確認,然後點擊文件工具欄內的保存按鈕。
7、下次打開Excel文件時再同時按下ALT+F11進入VBA代碼編輯器,滑鼠左鍵雙擊左側VBA工程中的VBAPROJECT文件名稱,彈出VBAPROJECT密碼輸入窗口,輸入密碼才可進入,否則無法查看工程密碼,呵呵。
H. HTML5 代碼如何加密呢
html是不可以加密的!因為瀏覽器不支持加密!
網上有許多所謂加密其實就是把網頁通過Unicode碼的轉換實現的,這些加密都是可以通過簡單的Unicode碼的轉換景象解密,並沒有什麼卵用。而且這些加密手段只有在右鍵查看源代碼的時候才會看到加密信息,如果是瀏覽器F12調試頁面的話,會直接顯示解密後的頁面。
並且中文文字太多會導致將你的加密過後頁面代碼膨脹。英文反會有壓縮效果。
如果是有一些敏感信息確實需要加密的話,可以使用js進行MD5加密進行傳輸。但是整個頁面進行加密確實是沒有必要的。
I. 如何給c/c++源代碼加密
#include#include#includevoid findKey(char* key, char* mark){int len = strlen(key);int i = 0;int j = 0;memset(mark,0,26);for (i = 0; i 96){encrypt[i] = map[encrypt[i] - 97];}}outputFile = fopen("output.txt", "w+");fwrite(encrypt,nFileLen,1,outputFile);printf("加密的密文:%s\n", encrypt);fclose(outputFile);fclose(inputFile);free(encrypt);system("pause");return 0;}
J. c#怎麼給源代碼加密,就是就算給別人源代碼
c# dll 加密最快的方法使用加殼工具Virbox Protector,直接加密,Virbox Protectorke可以對dll進行性能分析,分析每個函數的調用次數,對每個函數選擇保護方式如:混淆/虛擬化/碎片化/代碼加密等;每種加密方法的特點是什麼呢?
代碼加密(X86):
針對X86匯編代碼:一種代碼自修改技術(SMC)保護代碼。把當前代碼加密存儲為密文,存儲起來,當程序運行到被保護函數時候自動解密並且執行,執行之後再擦除代碼,運行到哪裡才解密哪裡的代碼,黑客無法獲得原始機器指令和內存完整性的代碼,由於是純內存操作所以運行速度快, 性價高的保護手段,建議全加
代碼加密(IL)
針對dotNet程序,保護IL代碼:一種動態運行方法解密被保護代碼。把當前代碼加密存儲為密文,存儲起來,當程序運行到被保護函數時候自動解密並且執行,執行之後再擦除代碼,執行之後再擦除代碼,運行到哪裡才解密哪裡的代碼,黑客無法獲得原始的中間語言的指令和內存完整性的代碼,由於是純內存操作所以運行速度快, 性價高的保護手段,建議全加
壓縮
類似zip等壓縮軟體把代碼和數據段壓縮,由於帶有動態密碼,沒有任何工具可以自動脫殼,是防止反編譯和反匯編關鍵手段。
代碼混淆(IL):
將代碼中的各種元素,如變數,函數,類的名字改寫成無意義的名字。比如改寫成單個字母,或是簡短的無意義字母組合,甚至改寫成「__」這樣的符號,使得閱讀的人無法根據名字猜測其用途。
a)重寫代碼中的部分邏輯,將其變成功能上等價,但是更難理解的形式。比如將for循環改寫成while循環,將循環改寫成遞歸,精簡中間變數,等等。
b) 打亂代碼的格式。比如刪除空格,將多行代碼擠到一行中,或者將一行代碼斷成多行等等。
c) 添加花指令,通過特殊構造的指令來使得反匯編器出錯,進而干擾反編譯工作的進行。
代碼混淆器也會帶來一些問題。主要的問題包括:· 被混淆的代碼難於理解,因此調試除錯也變得困難起來。開發人員通常需要保留原始的未混淆的代碼用於調試。· 對於支持反射的語言,代碼混淆有可能與反射發生沖突。· 代碼混淆並不能真正阻止反向工程,只能增大其難度。因此,對於對安全性要求很高的場合,僅僅使用代碼混淆並不能保證源代碼的安全。
代碼混淆的特點是安全度低、不會影響效率。
代碼虛擬化:
針對X86代碼: 是指將機器代碼翻譯為機器和人都無法識別的一串偽代碼位元組流;在具體執行時再對這些偽代碼進行一一翻譯解釋,逐步還原為原始代碼並執行。 這段用於翻譯偽代碼並負責具體執行的子程序就叫作虛擬機VM(好似一個抽象的CPU)。它以一個函數的形式存在,函數的參數就是位元組碼的內存地址。 由於虛擬機代碼和虛擬機CPU的實現可以做到每次都是隨機設計和隨機執行 並且代碼每次可以隨機變化,包括一些邏輯上的等價變化可以參考硬體N個與非門NOT-AND實現各種邏輯門,演算法和訪問內存形式的變化,包括數學上的非等價變化,代碼體積幾乎可以膨脹達到100到10000倍,造成機器無法做演算法還原到原有邏輯。
代碼虛擬化的特點是:安全度中、不會影響效率。
代碼碎片化:
深思自主知識產權的最新技術:基於 LLVM 和 ARM 虛擬機技術,自動抽取海量代碼移入 SS 內核態模塊,極大的降低了使用門檻, 不再需要手動移植演算法,可移植的演算法從有限的幾個增長到幾乎無限多,支持的語言也不再限於 C, 這是加密技術的一次綜合應用,效果上類似於將軟體打散執行,讓破解者無從下手。
安全度高、建議關鍵函數或調用加密鎖方法;使用太多會影響效率