在软件开发过程中,经常会用到一些加密。
1.都有哪些东西需要加密?
包括:给重要数据加密、给软件加密、给代码加密等等。
2.具体如何加密?
A.如何给重要数据加密.
这类用途主要是给部分小数据量加密。最常用的就是给密码加密。
为什么要给密码加密呢?
假设某天,某人通过某种手段进入了数据库后台.获得了拥有密码了的那张表的信息,这就意味着他能干任何事情。比如:用你的ID登陆,把你的所有东西都删掉或者改了。但是如果你数据库的密码是加密过的,最好采用不可逆算法。比如用MD5加密,即便他获得了这张表,也没办法用的ID登陆。因为你的做法可能是将密码加密后保存,然后登陆时用加密后的密码跟数据库的密码去比对。
B.如何给代码加密?
有些代码,涉及到商业利益。或者这段代码是不方便暴露给用户的。用户可能采用简单的反编译工具就能看到我们的源代码。怎么办?
我们可以采用模糊技术,或者加壳形式。
Visual Studio自带模糊工具。另外网上也有一些这类工具,可供使用。
C.如何给程序加密?
a.给软件一个授权期限。
这个很简单,最常用的办法就是写到注册表里。
不过这个容易被修改。所以可以用加密的后的数据保存到注册表。这样就算要改,没有生成加密后数据的程序,也没用。但是可以通过修改系统时间。
b.给授权文件,授权文件限制软件只能装在本机上。
这个就要考虑机器本身的数据常量。然后对这个常量进行加解密。
比如:先取得硬盘序列号Data,然后将Data进行A 方法加密,然后传给服务端。服务端通过A加密的可逆解密将数据解密,然后再将数据通过B加密,生成授权文件, 传回给客户机。客户机通过B加密的可逆解密程序将数据解密。然后跟本机硬盘序列号对比。即可。