عادةً ما يتم استخدام BASE64 وغيرها من خوارزميات الترميز المماثلة لتحويل البيانات الثنائية إلى بيانات نصية ، بغرض تبسيط التخزين أو الإرسال. وبشكل أكثر تحديدًا ، يتم استخدام خوارزمية BASE64 بشكل أساسي لتحويل البيانات الثنائية إلى تنسيق سلسلة ASCII. توفر لغة Java تنفيذًا جيدًا جدًا لخوارزمية BASE64. سوف تصف هذه المقالة بإيجاز كيفية استخدام BASE64 وكيفية عملها.
وظيفة BASE64: الغرض الرئيسي منها هو التشفير ، والغرض الرئيسي منه هو تحويل بعض الأرقام الثنائية إلى أحرف عادية لنقل الشبكة. نظرًا لأن بعض الأحرف الثنائية هي أحرف تحكم في بروتوكول الإرسال ، فلا يمكن نقلها مباشرة وتحتاج إلى تحويلها.
الطريقة الأولى:
استخدم فصولًا في Java التي لا تتعرض للجمهور من خلال التفكير:
/ ****encode by base64*/ public static string encodebase64 (byte [] input) يرمي الاستثناء {class clazz = class.forname ("com.sun.org.apache.xerces.internal.impl.dv.util.base64") ؛ الطريقة mainMethod = clazz.getMethod ("encode" ، byte []. class) ؛ mainmethod.setAccible (صحيح) ؛ الكائن retObj = mainMethod.invoke (null ، كائن جديد [] {input}) ؛ إرجاع (سلسلة) retobj ؛ } / ****decode by base64* / public static byte [] decodeBase64 (إدخال السلسلة) يلقي استثناء {class clazz.forname ("com.sun.org.apache.xerces.internal.impl.dv.util.base64") ؛ الطريقة mainMethod = clazz.getMethod ("decode" ، string.class) ؛ mainmethod.setAccible (صحيح) ؛ الكائن retobj = mainMethod.invoke (null ، input) ؛ إرجاع (بايت []) retobj ؛ } الطريقة الثانية:
استخدام العموم codec.jar
/ ** * param bytes * @return */ public static byte [] decode (byte final [] bytes) {return base64.decodeBase64 (bytes) ؛ } / ** * يتم ترميز البيانات الثنائية كسلسلة BASE64 * * param bytes * REGRANT * @Throws استثناء * / string static public encode (byte byte [] bytes) {return new string (base64.encodeBase64 (bytes)) ؛ } الطريقة الثالثة:
/ ** * الترميز * param bstr * @regurn string */ public static string encode (byte [] bstr) {return new Sun.Misc.base64encoder (). encode (bstr) ؛ } / ** * decoding * param str * @regurn 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 () ؛ } إرجاع bt ؛ }ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.