当前位置:   article > 正文

base64加解密_org.bouncycastle.util.encoders.base64找不到

org.bouncycastle.util.encoders.base64找不到

Base64就是基于英文拼音(大小写各26个共52个)+数字(10个)+两个特殊字符(+/)来实现的一个替换编码。他并非是一个严格意义的加解密的算法,是一种编码的替换格式,对应的编码和值是公开的,比较容易破解,如果加上一些扰码安全性会更高一些!

实现base64加解密目前有三种办法:

第一种:JDK的实现Base64算法

  1. BASE64Encoder encoder = new BASE64Encoder();
  2. String encode = encoder.encode(src.getBytes());
  3. BASE64Decoder decoder = new BASE64Decoder();

如果是jdk1.8以下,提示找不到这个   BASE64Encoder 解决办法:

https://blog.csdn.net/liu578182160/article/details/51153022
 

第二种:CC (CommonsCodes)实现的Base64算法

  1. byte[] encodeBytes = Base64.encodeBase64(src.getBytes());
  2. byte[] decodeBytes = Base64.decodeBase64(encodeBytes);

 

第三种:BC(BouncyCastle)实现的Base64的算法

  1. byte[] encodeBytes = org.bouncycastle.util.encoders.Base64.encode(src.getBytes());
  2. byte[] decodeBytes = org.bouncycastle.util.encoders.Base64.decode(encodeBytes);

Base64算法的应用场景:e-mail;

密钥;证书文件 产生的历史原因:邮件的“历史问题”;

原因是邮件在传输一些非ASCLL码的值,在一些不同的网关或者网络会出现一些问题。

定义:基于64个字符的编码算法。RFC 2045关于Base算法的基本规范;衍生:Base16、Base32、Url Base64;

 

demo实例代码:

  1. import java.io.IOException;
  2. import org.apache.commons.codec.binary.Base64;
  3. import com.sun.org.apache.bcel.internal.generic.NEW;
  4. import sun.misc.BASE64Decoder;
  5. import sun.misc.BASE64Encoder;
  6. import sun.print.resources.serviceui;
  7. /**
  8. * base64加密解密
  9. * @author Lenovo
  10. *
  11. */
  12. public class Base64Demo {
  13. private static String src = "Hello world";
  14. public static void main(String[] args) {
  15. jdkBase64();
  16. commonCodeBase64();
  17. }
  18. public static void jdkBase64(){
  19. System.out.println("jdkBase64===============================");
  20. try {
  21. BASE64Encoder encoder = new BASE64Encoder();
  22. String encode = encoder.encode(src.getBytes());
  23. System.out.println("加密 :"+encode);
  24. BASE64Decoder decoder = new BASE64Decoder();
  25. System.out.println("解密 :"+new String(decoder.decodeBuffer(encode)));
  26. } catch (IOException e) {
  27. e.printStackTrace();
  28. }
  29. }
  30. public static void commonCodeBase64(){
  31. System.out.println("commonCodeBase64===============================");
  32. byte[] encodeBase64 = Base64.encodeBase64(src.getBytes());
  33. System.out.println("加密 :"+new String(encodeBase64));
  34. System.out.println("解密 :"+new String(Base64.encodeBase64(encodeBase64)));
  35. }
  36. //此jdk版本过低,jdk1.8以下不适用
  37. public static void bouncyCastleBase64(){
  38. System.out.println("bouncyCastleBase64===============================");
  39. byte[] encodeBase64 = org.bouncycastle.util.encoders.Base64.encoder(src.getBytes());
  40. System.out.println("加密 :"+new String(encodeBase64));
  41. System.out.println("解密 :"+new String(org.bouncycastle.util.encoders.Base64.decoder(encodeBase64)));
  42. }
  43. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/1020249
推荐阅读
相关标签
  

闽ICP备14008679号