通过数字签名来避免篡改的。一般思路如下:
1.将信息生成数字签名,并将数字签名用公私加密
2.用私钥解密数字签名,然后将信息再生成一次签名,将两个签名作比较得出结论
以下用JAVA模拟过程:首先生成一个公钥一个私钥,分别保存文件为 public.key和private.key;任给一个信息文件 demo.txt,用private.key生成数字签名(已加密),将签名存放于文件sign.sgn;用公私 public.key 验证数字签名。
签名算法选用DSA
注:本例仅对小数据可行,大数据会出现内存溢出。