未整理:
对文件进行数字签名大致上是这样做的,当用户连接设备的会话结束以后,系统对LOG文件后面再上一串固定的字符串(64个字符差不多了,需保密),然后用MD5进行hash,这样将得到一串128位的hash,把它存储到数据库。每次检验的时候,用以上算法对log文件重新计算一遍,如果结果跟数据库里面的一致,就说明文件没有被修改,否则就有问题
而且敲进去的命令行本身也有log下来,这个用户是没办法改的 |
固化在程序里面
|
这几个字符不追加到文件内=
|
包括iphone的签名算法都是这样做的
|
那样不行,别人也可以做同样的操作,然后生成同样的签名
|
固化在程序里面用户签名的私钥,最好用一个简单的算法来生成,避免被直接查看资源的方式就破解
|
那时候文件被你打开了,他应该没办法保存
|
|
md5算法,原有的代码里面有一个类
Hash算法不管是MD5也好SHA1也好. 他们都是一种散列算法,其算法的特点是,可以把任意长度的字符串经过运算生成固定长度的字符串,并且这个产生的字符串代表着原来字符串里的所有字符。 admin 加密后: 其中不管是16位也好,32位也好其生成的字符串8f00b204e9800998 (16bit)或者d41d8cd98f00b204e9800998ecf8427e(32bit)他们表示着admin这个原始字符串. 只要admin这个字符串没有变,不管怎样重复使用MD5或者SHA1进行重新运算,其结果保持不变。 利用这个特点,在计算机安全学上,我们使用这种算法来保证数据完整性(Integrity) 显而易见Hash算法,是用来保证 Integrity的算法。什么叫做完整性,不单单指数据不丢失,并且要保证数据没有被非法修改过。举个简单的例子。 比如:A 发了一个Email给B内容为"Hello",因为我们目前使用的以太网的特点,任何人在网络上都有可能截获这封Email,任何人都有可能,修改Hello这个字符串。那么当B收到这封A发来的Email的时候,怎么确定这封Email在传送过程中没有被修改过呢? 我们就使用了Hash算法来保证数据的完整性。他的工作方式是这样的: 1.A写一封Email内容为Hello 4.B接收到了A的Email,首先分离由2部分组成的邮件。 至此,保证了原始数据的完整性。 |