加密狗通過在軟件執行過程中和加密狗交換數據來實現加密的.加密狗內置單片機電路(也稱CPU),使得加密狗具有判斷、分析的處理能力,增強了主動的反解密能力。這種加密產品稱它為"智能型"加密狗.加密狗內置的單片機里包含有專用于加密的算法軟件,該軟件被寫入單片機后,就不能再被讀出。這樣,就保證了加密狗硬件不能被復制。同時,加密算法是不可預知、不可逆的。加密算法可以把一個數字或字符變換成一個整數,如DogConvert(1)=17345、DogConvert(A)=43565。下面,我們舉個例子說明單片機算法的使用。 比如一段程序中有這樣一句:A=Fx(3)。程序要根據常量3來得到變量A的值。于是,我們就可以把原程序這樣改寫:A=Fx(DogConvert(1)-12342)。那么原程序中就不會出現常量3,而取之以DogConvert(1)-12342。這樣,只有軟件編寫者才知道實際調用的常量是3。而如果沒有加密狗,DogConvert函數就不能返回正確結果,結果算式A=Fx(DogConvert(1)-12342)結果也肯定不會正確。這種使盜版用戶得不到軟件使用價值的加密方式,要比一發現非法使用就警告、中止的加密方式更溫和、更隱蔽、更令解密者難以琢磨。此外,加密狗還有讀寫函數可以用作對加密狗內部的存儲器的讀寫。于是我們可以把上算式中的12342也寫到狗的存儲器中去,令A的值完全取決于DogConvert()和DogRead()函數的結果,令解密難上加難。不過,一般說來,加密狗單片機的算法難度要低于一些公開的加密算法,如DES等,因為解密者在觸及加密狗的算法之前要面對許多難關