电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

詳解Java如何進行Base64的編碼(Encode)與解碼(Decode)

瀏覽:86日期:2022-09-04 10:23:53

關于base64編碼Encode和Decode編碼的幾種方式

Base64是一種能將任意Binary資料用64種字元組合成字串的方法,而這個Binary資料和字串資料彼此之間是可以互相轉換的,十分方便。在實際應用上,Base64除了能將Binary資料可視化之外,也常用來表示字串加密過后的內容。如果要使用Java 程式語言來實作Base64的編碼與解碼功能,可以參考本篇文章的作法。

早期作法

早期在Java上做Base64的編碼與解碼,會使用到JDK里sun.misc套件下的BASE64Encoder和BASE64Decoder這兩個類別,用法如下:

final BASE64Encoder encoder = new BASE64Encoder();final BASE64Decoder decoder = new BASE64Decoder();final String text = '字串文字';final byte[] textByte = text.getBytes('UTF-8');//編碼final String encodedText = encoder.encode(textByte);System.out.println(encodedText);//解碼System.out.println(new String(decoder.decodeBuffer(encodedText), 'UTF-8'));final BASE64Encoder encoder = new BASE64Encoder();final BASE64Decoder decoder = new BASE64Decoder();final String text = '字串文字';final byte[] textByte = text.getBytes('UTF-8');//編碼final String encodedText = encoder.encode(textByte);System.out.println(encodedText);//解碼System.out.println(new String(decoder.decodeBuffer(encodedText), 'UTF-8'));

從以上程式可以發現,在Java用Base64一點都不難,不用幾行程式碼就解決了!只是這個sun.mis c套件所提供的Base64功能,編碼和解碼的效率并不太好,而且在以后的Java版本可能就不被支援了,完全不建議使用。

Apache Commons Codec作法

Apache Commons Codec有提供Base64的編碼與解碼功能,會使用到org.apache.commons.codec.binary套件下的Base64類別,用法如下:

final Base64 base64 = new Base64();final String text = '字串文字';final byte[] textByte = text.getBytes('UTF-8');//編碼final String encodedText = base64.encodeToString(textByte);System.out.println(encodedText);//解碼System.out.println(new String(base64.decode(encodedText), 'UTF-8'));final Base64 base64 = new Base64();final String text = '字串文字';final byte[] textByte = text.getBytes('UTF-8');//編碼final String encodedText = base64.encodeToString(textByte);System.out.println(encodedText);//解碼System.out.println(new String(base64.decode(encodedText), 'UTF-8'));

以上的程式碼看起來又比早期用sun.mis c套件還要更精簡,效能實際執行起來也快了不少。缺點是需要引用Apache Commons Codec,很麻煩。

Java 8之后的作法

Java 8的java.util套件中,新增了Base64的類別,可以用來處理Base64的編碼與解碼,用法如下:

final Base64.Decoder decoder = Base64.getDecoder();final Base64.Encoder encoder = Base64.getEncoder();final String text = '字串文字';final byte[] textByte = text.getBytes('UTF-8');//編碼final String encodedText = encoder.encodeToString(textByte);System.out.println(encodedText);//解碼System.out.println(new String(decoder.decode(encodedText), 'UTF-8'));final Base64.Decoder decoder = Base64.getDecoder();final Base64.Encoder encoder = Base64.getEncoder();final String text = '字串文字';final byte[] textByte = text.getBytes('UTF-8');//編碼final String encodedText = encoder.encodeToString(textByte);System.out.println(encodedText);//解碼System.out.println(new String(decoder.decode(encodedText), 'UTF-8'));

與sun.mis c套件和Apache Commons Codec所提供的Base64編解碼器來比較的話,Java 8提供的Base64擁有更好的效能。實際測試編碼與解碼速度的話,Java 8提供的Base64,要比sun.mis c套件提供的還要快至少11倍,比Apache Commons Codec提供的還要快至少3倍。因此在Java上若要使用Base64,這個Java 8底下的java .util套件所提供的Base64類別絕對是首選!

到此這篇關于詳解Java如何進行Base64的編碼(Encode)與解碼(Decode)的文章就介紹到這了,更多相關Java Base64編碼與解碼內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 24位ADC|8位MCU-芯易德科技有限公司| 「银杏树」银杏树行情价格_银杏树种植_山东程锦园林 | 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 上海深蓝_缠绕机_缠膜机-上海深蓝机械装备有限公司 | 上海平衡机-单面卧式动平衡机-万向节动平衡机-圈带动平衡机厂家-上海申岢动平衡机制造有限公司 | 精密线材测试仪-电线电缆检测仪-苏州欣硕电子科技有限公司 | nalgene洗瓶,nalgene量筒,nalgene窄口瓶,nalgene放水口大瓶,浙江省nalgene代理-杭州雷琪实验器材有限公司 | vr安全体验馆|交通安全|工地安全|禁毒|消防|安全教育体验馆|安全体验教室-贝森德(深圳)科技 | 北京晚会活动策划|北京节目录制后期剪辑|北京演播厅出租租赁-北京龙视星光文化传媒有限公司 | 玻璃钢格栅盖板|玻璃钢盖板|玻璃钢格栅板|树篦子-长沙川皖玻璃钢制品有限公司 | 医院专用门厂家报价-医用病房门尺寸大全-抗菌木门品牌推荐 | 山东活动策划|济南活动公司|济南公关活动策划-济南锐嘉广告有限公司 | 化工ERP软件_化工新材料ERP系统_化工新材料MES软件_MES系统-广东顺景软件科技有限公司 | 气密性检测仪_气密性检测设备_防水测试仪_密封测试仪-岳信仪器 | 智能型高压核相仪-自动开口闪点测试仪-QJ41A电雷管测试仪|上海妙定 | 成都网站建设制作_高端网站设计公司「做网站送优化推广」 | 神超官网_焊接圆锯片_高速钢锯片_硬质合金锯片_浙江神超锯业制造有限公司 | 深圳市宏康仪器科技有限公司-模拟高空低压试验箱-高温防爆试验箱-温控短路试验箱【官网】 | 液压中心架,数控中心架,自定心中心架-烟台恒阳机电设计有限公司 行星搅拌机,双行星搅拌机,动力混合机,无锡米克斯行星搅拌机生产厂家 | 智能终端_RTU_dcm_北斗星空自动化科技 | 无压烧结银_有压烧结银_导电银胶_导电油墨_导电胶-善仁(浙江)新材料 | 超声波清洗机_细胞破碎仪_实验室超声仪器_恒温水浴-广东洁盟深那仪器 | 正压密封性测试仪-静态发色仪-导丝头柔软性测试仪-济南恒品机电技术有限公司 | 振动时效_振动时效仪_超声波冲击设备-济南驰奥机电设备有限公司 北京宣传片拍摄_产品宣传片拍摄_宣传片制作公司-现像传媒 | 通辽信息港 - 免费发布房产、招聘、求职、二手、商铺等信息 www.tlxxg.net | 永嘉县奥阳陶瓷阀门有限公司 | B2B网站_B2B免费发布信息网站_B2B企业贸易平台 - 企资网 | sus630/303cu不锈钢棒,440C/430F/17-4ph不锈钢研磨棒-江苏德镍金属科技有限公司 | elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | Magnescale探规,Magnescale磁栅尺,Magnescale传感器,Magnescale测厚仪,Mitutoyo光栅尺,笔式位移传感器-苏州连达精密量仪有限公司 | 胃口福饺子加盟官网_新鲜现包饺子云吞加盟 - 【胃口福唯一官网】 | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 拉力机-拉力试验机-万能试验机-电子拉力机-拉伸试验机-剥离强度试验机-苏州皖仪实验仪器有限公司 | 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 广东高华家具-公寓床|学生宿舍双层铁床厂家【质保十年】 | 真空搅拌机-行星搅拌机-双行星动力混合机-广州市番禺区源创化工设备厂 | 压力变送器-上海武锐自动化设备有限公司 | 二手Sciex液质联用仪-岛津气质联用仪-二手安捷伦气质联用仪-上海隐智科学仪器有限公司 | 999范文网_优质范文下载写作帮手| 湖南自考_湖南自学考试网 | 深圳彩钢板_彩钢瓦_岩棉板_夹芯板_防火复合彩钢板_长鑫 |