很多的网络相关的软件都需要用户名密码登录,在开发的时候像这些密码都是保存在SharedPreferences中。这些密码保存在/data/data/包名/shared_prefs下,保存在一个XML文件中,开始说道正题,MD5加密算法虽然现在有些人已经将其解开了,但是它的加密机制依然很强大,我想绝大对数还是不会解开的。MD5加密算法是单向加密,只能用你的密码才能解开,要不就是会解密算法,否则想都别想解开。为了防止这种情况的发生。还可以对加密过的密码进行再次加密。
java代码:
-
- import java.security.MessageDigest;
- import java.security.NoSuchAlgorithmException;
- public class MD5Encoder {
- public static String encode(String pwd){
- try{
- MessageDigest messageDigest = MessageDigest.getInstance("MD5");//拿到MD5加密的对象
- byte[] bytes = messageDigest.digest(pwd.getBytes());//返回一个加密后的字节数组
- StringBuffer sb=new StringBuffer();
- String tmp;
- for(int i=0;i<bytes.length;i++){
- tmp = Integer.toHexString(0xff & bytes[i]);//把字节转换为16进制的字符串
- if(tmp.length()==1){
- sb.append("0" + tmp);
- }else{
- sb.append(tmp);
- }
- }
- return sb.toString();
- }catch(NoSuchAlgorithmException e){
- throw new RuntimeException("没有这个加密算法" + e);
- }
- }
- }