MD5加密工具类和DES加密工具类

学习了MD5加密类记录一下,加密方式是固定的,这个是最简单没做任何处理的,而且MD5加密不可破解(可能网上有破解)

      public static String encode(String string)  {
        byte[] hash = new byte[0];
        try {
          hash = MessageDigest.getInstance("MD5").digest(string.getBytes("UTF-8"));
        } catch (NoSuchAlgorithmException e) {
          e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
          e.printStackTrace();
        }
        StringBuilder hex = new StringBuilder(hash.length * 2);
	    for (byte b : hash) {
	        if ((b & 0xFF) < 0x10) {
	        	hex.append("0");
	        }
	        hex.append(Integer.toHexString(b & 0xFF));
	    }
	    return hex.toString();
	}

学习了DES加密解密记录一下 按照https://blog.csdn.net/gongzhiyao3739124/article/details/52809821 这个大神写的

       密钥长度不能少于八位,少了会报错

public class DES {
  //内容随便填 长度要八个
  private  static byte[] iv={1,3,4,5,2,9,0,1};
  /**
   *
   * @param encryptString 明文
   * @param encryptKey 密匙  传入的密匙大于8位
   * @return 加密后的密文
   */
  public static String EncryptDES(String encryptString,String encryptKey){
    //实例化IvParameterSpec对象,使用指定的初始化向量
    IvParameterSpec zeroIv= new IvParameterSpec(iv);
    //实例化SecretKeySpec,根据传入的密钥获取字节数组来构造SecretKeySpec
    SecretKeySpec key=new SecretKeySpec(encryptKey.getBytes(),"DES");
    try {
      //创建密码器
     Cipher cipher= Cipher.getInstance("DES/CBC/PKCS5Padding");
     //使用密钥初始化Cipher对象
     cipher.init(Cipher.ENCRYPT_MODE,key,zeroIv);
     //执行加密操作
      byte[] encryptedData=cipher.doFinal(encryptString.getBytes());

      return Base64.encodeToString(encryptedData,0);
    } catch (NoSuchAlgorithmException e) {
      e.printStackTrace();
    } catch (NoSuchPaddingException e) {
      e.printStackTrace();
    } catch (InvalidAlgorithmParameterException e) {
      e.printStackTrace();
    } catch (InvalidKeyException e) {
      e.printStackTrace();
    } catch (BadPaddingException e) {
      e.printStackTrace();
    } catch (IllegalBlockSizeException e) {
      e.printStackTrace();
    }
    return null;
  }

  /**
   *
   * @param decryptString  密文
   * @param decryptKey 密钥   传入的密匙大于8位
   * @return 返回明文
   */
  public static String decryptDES(String decryptString,String decryptKey){
    //先试用Base64解密
    byte[] bytes=Base64.decode(decryptString,0);
    //实例化IvParameterSpec对象使用制度的初始化向量
    IvParameterSpec zeroIv=new IvParameterSpec(iv);
    //实例化SecretKeySpec,根据传入的密钥获得字节数组来构造SecretKeySpec
    SecretKeySpec key=new SecretKeySpec(decryptKey.getBytes(),"DES");
    try {
      //创建密码器
      Cipher cipher=Cipher.getInstance("DES/CBC/PKCS5Padding");
      //用密钥初始化Cipher对象,上面是加密,这是解密
      cipher.init(Cipher.DECRYPT_MODE,key,zeroIv);
      //获取解密后的数据
       byte[] decryptedData=cipher.doFinal(bytes);
       return  new String(decryptedData);
    } catch (NoSuchAlgorithmException e) {
      e.printStackTrace();
    } catch (NoSuchPaddingException e) {
      e.printStackTrace();
    } catch (InvalidAlgorithmParameterException e) {
      e.printStackTrace();
    } catch (InvalidKeyException e) {
      e.printStackTrace();
    } catch (BadPaddingException e) {
      e.printStackTrace();
    } catch (IllegalBlockSizeException e) {
      e.printStackTrace();
    }
    return null;
  }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Visual Studio .NET VB编程语言 MD5(DES) 8位密钥加密或解密文件function源代码 压缩包 : MD5 skey8位加密(文件).zip 列表 MD5 skey8位加密(文件)/ MD5 skey8位加密(文件)/bin/ MD5 skey8位加密(文件)/Form1.Designer.vb MD5 skey8位加密(文件)/Form1.resx MD5 skey8位加密(文件)/Form1.vb MD5 skey8位加密(文件)/MD5 skey8位加密(文件).vbproj MD5 skey8位加密(文件)/MD5 skey8位加密(文件).vbproj.user MD5 skey8位加密(文件)/My Project/ MD5 skey8位加密(文件)/My Project/Application.Designer.vb MD5 skey8位加密(文件)/My Project/Application.myapp MD5 skey8位加密(文件)/My Project/AssemblyInfo.vb MD5 skey8位加密(文件)/My Project/Resources.Designer.vb MD5 skey8位加密(文件)/My Project/Resources.resx MD5 skey8位加密(文件)/My Project/Settings.Designer.vb MD5 skey8位加密(文件)/My Project/Settings.settings MD5 skey8位加密(文件)/obj/ MD5 skey8位加密(文件)/obj/Debug/ MD5 skey8位加密(文件)/obj/Debug/CoreCompileInputs.cache MD5 skey8位加密(文件)/obj/Debug/DesignTimeResolveAssemblyReferences.cache MD5 skey8位加密(文件)/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).exe MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).pdb MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).vbproj.FileListAbsolute.txt MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).vbproj.GenerateResource.Cache MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).vbprojResolveAssemblyReference.cache MD5 skey8位加密(文件)/obj/Debug/MD5 skey8位加密(文件).xml MD5 skey8位加密(文件)/obj/Debug/TempPE/ MD5 skey8位加密(文件)/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.exe MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.Form1.resources MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.pdb MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.Resources.resources MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.vbproj.FileListAbsolute.txt MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.vbproj.GenerateResource.Cache MD5 skey8位加密(文件)/obj/Debug/WindowsApplication1.xml MD5 skey8位加密(文件)/obj/Release/ MD5 skey8位加密(文件).sln MD5 skey8位加密(文件).v11.suo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值