系统

 
 

 电子签名加密方式:RSA或是SM2.

SM2和RSA都是公钥密码算法

MD5:当用户登录的时候,系统把用户输入的密码计算成MD5值,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。

package com.bjpowernode.md5;

 

import java.security.MessageDigest;

 

public class MD5Test {

 

/**

 * @param args

 */

public static void main(String[] args) {

System.out.println(MD5Test.MD5("admin"));

}

 

public final static String MD5(String s) {

try {

byte[] btInput = s.getBytes();

MessageDigest mdInst = MessageDigest.getInstance("MD5");

mdInst.update(btInput);

byte[] md = mdInst.digest();

StringBuffer sb = new StringBuffer();

for (int i = 0; i < md.length; i++) {

int val = ((int) md[i]) & 0xff;

if (val < 16)

sb.append("0");

sb.append(Integer.toHexString(val));

}

return sb.toString();

} catch (Exception e) {

return null;

}

}

 

 

}

虽然RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何。   此外,RSA的缺点还有:A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。B)分组长度太大,为保证安全性,n 至少也要 600 bits 以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。因此,使用RSA只能加密少量数据,大量的数据加密还要靠对称密码算法。
 

 

 
 
 
 
 
 
 
 
 
 
 
 
posted @ 2017-07-21 14:20  超重语言  阅读(112)  评论(0编辑  收藏  举报