BASE64 และอัลกอริทึมการเข้ารหัสอื่น ๆ ที่คล้ายกันมักใช้ในการแปลงข้อมูลไบนารีเป็นข้อมูลข้อความโดยมีวัตถุประสงค์เพื่อลดความซับซ้อนของการจัดเก็บหรือการส่งสัญญาณ โดยเฉพาะอย่างยิ่งอัลกอริทึม Base64 ส่วนใหญ่จะใช้เพื่อแปลงข้อมูลไบนารีเป็นรูปแบบสตริง ASCII ภาษา Java ให้การใช้อัลกอริทึม Base64 ที่ดีมาก บทความนี้จะอธิบายวิธีการใช้ Base64 สั้น ๆ และวิธีการทำงาน
ฟังก์ชั่นของ BASE64: วัตถุประสงค์หลักของมันคือการเข้ารหัสวัตถุประสงค์หลักของมันคือการแปลงตัวเลขไบนารีบางอย่างเป็นอักขระธรรมดาสำหรับการส่งเครือข่าย เนื่องจากอักขระไบนารีบางตัวเป็นอักขระควบคุมในโปรโตคอลการส่งสัญญาณจึงไม่สามารถส่งโดยตรงและต้องแปลง
วิธีแรก:
ใช้คลาสใน Java ที่ไม่ได้สัมผัสกับสาธารณะผ่านการสะท้อน:
/ ****เข้ารหัสโดย base64*/ สตริงคงที่สาธารณะ ENCODEBASE64 (ไบต์ [] อินพุต) พ่นข้อยกเว้น {คลาส clazz = class.forName ("com.sun.org.apache.xerces.internal.impl.dv.util.base64"); Method MainMethod = clazz.getMethod ("ENCODE", BYTE []. class); MainMethod.setAccessible (จริง); Object retobj = mainMethod.invoke (null, วัตถุใหม่ [] {input}); return (string) retobj; } / ****decode โดย base64* / public Static byte [] decodeBase64 (อินพุตสตริง) โยนข้อยกเว้น {clazz clazz = class.forname ("com.sun.org.apache.xerces.internal.impl.dv.util.base64"); วิธีการ mainmethod = clazz.getMethod ("decode", string.class); MainMethod.setAccessible (จริง); Object retobj = mainMethod.invoke (null, อินพุต); return (byte []) retobj; - วิธีที่สอง:
ใช้ pommons-codec.jar
/ ** * @param bytes * @return */ public static byte [] decode (byte สุดท้าย [] bytes) {return base64.decodeBase64 (ไบต์); } / ** * ข้อมูลไบนารีถูกเข้ารหัสเป็นสตริง Base64 * * @param bytes * @return * @throws Exception * / String String สาธารณะที่เข้ารหัส (ไบต์สุดท้าย [] bytes) {ส่งคืนสตริงใหม่ (base64.encodeBase64 (ไบต์)); - วิธีที่สาม:
/ ** * การเข้ารหัส * @param bstr * @return string */ String String สาธารณะ ENCODE (BYTE [] BSTR) {ส่งคืน SUN.MISC.BASE64ENCODER (). ENCODE (BSTR); } / ** * การถอดรหัส * @param str * @return String * / public Static byte [] decode (string str) {byte [] bt = null; ลอง {sun.misc.base64decoder decoder = new sun.misc.base64decoder (); bt = decoder.decodeBuffer (str); } catch (ioexception e) {e.printstacktrace (); } return bt; -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น