Heim > Backend-Entwicklung > PHP-Tutorial > php中什么是加密狗?

php中什么是加密狗?

PHPz
Freigeben: 2020-09-05 09:55:21
Original
2272 Leute haben es durchsucht

加密狗也叫加密锁,是一种插在计算机并行口上的软硬件结合的加密产品。软件开发者可以通过接口函数和加密狗进行数据交换,来检查加密狗是否插在接口上;或者直接用加密狗附带的工具加密自己EXE文件。

php中什么是加密狗?

什么是加密狗?

加密狗,全称"软件加密狗",也叫加密锁,是一种插在计算机并行口上的软硬件结合的加密产品(新型加密锁也有usb口的)。

加密狗通过在软件执行过程中和加密狗交换数据来实现加密的。加密狗内置单片机电路(也称CPU),使得加密狗具有判断、分析的处理能力,增强了主动的反解密能力。

软件开发者可以通过接口函数和加密狗进行数据交换,来检查加密狗是否插在接口上;或者直接用加密狗附带的工具加密自己EXE文件(俗称"包壳")。

软件开发者可以在软件中设置多处软件锁,利用软件加密狗做为钥匙来打开这些锁;如果没插软件加密狗或软件加密狗不对应,软件将不能正常执行。

工作原理:

我们举个例子说明单片机算法的使用。 比如一段程序中有这样一句: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等,因为解密者在触及软件加密狗的算法之前要面对许多难关。

最新的硬件加密原理

目前全球最先进的圣天狗中引入了双算法安全通道技术,在通讯中同时采用128位AES算法及160位ECC算法作为通讯加密手段,每一次数据传输都用128位随机密钥AES算法对其加密,而这个随机的密钥又用160位ECC算法加密,在随后传输。

由于ECC是非对称算法,加密和解密的密钥并不相同,如果其中一组密钥可以用黑客手段从内存中获得,那么另外一组烧录在硬件狗中的密钥,黑客无法获得。

无法获得两对ECC密钥,也就无法破解ECC加密的数据,从而无法获得AES密钥,也就无法破解整个通讯过程。

这一双算法安全通道技术彻底解决了通讯监听破解的难题,传统的对称算法加密,黑客只要从内存中获得其加密密钥,就可以破解整个通讯过程。

更多相关知识,请访问 PHP中文网!!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage