当前位置:   article > 正文

Base64工具类Base64Util

base64util

需要的依赖包

  1. <dependency>
  2. <groupId>commons-net</groupId>
  3. <artifactId>commons-net</artifactId>
  4. <version>3.3</version>
  5. </dependency>

直接上工具类代码,已使用数个项目

  1. import org.apache.commons.net.util.Base64;
  2. import java.io.UnsupportedEncodingException;
  3. /**
  4. * @describe: base64工具类
  5. * @author: jiahong.xing/华润创业有限公司
  6. * @version: v1.0
  7. * @date 2018/6/27/002714:08
  8. */
  9. public class Base64Util {
  10. /**
  11. * 编码
  12. *
  13. * @param str
  14. * @return
  15. */
  16. public static String encode(final String str) {
  17. if (StringUtils.isEmpty(str)) {
  18. return null;
  19. }
  20. return Base64.encodeBase64String(str.getBytes());
  21. }
  22. //重载
  23. public static String encode(byte[] binaryData) {
  24. return Base64.encodeBase64String(binaryData);
  25. }
  26. /**
  27. * 解码
  28. *
  29. * @param base64
  30. * @return
  31. */
  32. public static String decode(final String base64) {
  33. if (StringUtils.isEmpty(base64)) {
  34. return null;
  35. }
  36. String str = null;
  37. try {
  38. str = new String(Base64.decodeBase64(base64), "UTF-8");
  39. } catch (UnsupportedEncodingException e) {
  40. e.printStackTrace();
  41. }
  42. return str;
  43. }
  44. //解码
  45. public static byte[] decodeBite(String encodedText) {
  46. byte[] bytes = Base64.decodeBase64(encodedText);
  47. return bytes;
  48. }
  49. //重载
  50. public static String decode(byte[] binaryData) {
  51. String str = null;
  52. try {
  53. str = new String(Base64.decodeBase64(binaryData), "UTF-8");
  54. } catch (UnsupportedEncodingException e) {
  55. e.printStackTrace();
  56. }
  57. return str;
  58. }
  59. /**
  60. * 判断是否base64过的原文,原理为解密再加密,得到原字符串则代表的是已加密过的
  61. *
  62. * @param base64
  63. * @return
  64. */
  65. public static boolean isBase64(final String base64) {
  66. if (StringUtils.isEmpty(base64)) {
  67. return false;
  68. }
  69. String de = decode(base64);
  70. String en = encode(de).replaceAll("[\\s*\t\n\r]", "");
  71. return base64.equals(en);
  72. }
  73. //上面的相反判断
  74. public static boolean isNotBase64(final String base64) {
  75. return !isBase64(base64);
  76. }
  77. //得到一个base64文件的实际大小
  78. public static long base64file_size(String base64String) {
  79. //1.获取base64字符串长度(不含data:audio/wav;base64,文件头)
  80. int size0 = base64String.length();
  81. //2.获取字符串的尾巴的最后10个字符,用于判断尾巴是否有等号,正常生成的base64文件'等号'不会超过4
  82. String tail = base64String.substring(size0 - 10);
  83. //3.找到等号,把等号也去掉,(等号其实是空的意思,不能算在文件大小里面)
  84. int equalIndex = tail.indexOf("=");
  85. if (equalIndex > 0) {
  86. size0 = size0 - (10 - equalIndex);
  87. }
  88. //4.计算后得到的文件流大小,单位为字节
  89. return size0 - ((long) size0 / 8) * 2;
  90. }

有疑问或者有问题的留言

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

闽ICP备14008679号