Base64算法的编程使用
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                Base64算法的编程使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                 Base64算法定義?
 
 
Base64是一種基于64個字符的編碼算法,以任意8位字節序列組合的描述形式,這種形式不易直接識別。經Base64編碼后的字符串的字符數是以4為單位的整數倍?
 
 
 Base64密鑰?
 
 
 
 
 Base64編程使用?
 
 
package com.cry.base64;import java.io.IOException;import Decoder.BASE64Decoder; import Decoder.BASE64Encoder;public class Base64Util {/*** base64加密* @param data* @return*/public static String encryptBase64(byte[] data) {return new BASE64Encoder().encode(data);}/*** base64解密* @param data* @return* @throws IOException*/public static String decryptBase64(String data) throws IOException {byte[] resultBytes = new BASE64Decoder().decodeBuffer(data);return new String(resultBytes);}public static void main(String args[]) throws IOException {String data = "測試base64";String encodeData = Base64Util.encryptBase64(data.getBytes());System.out.println("加密后>>>" + encodeData);System.out.println("解密后>>" + Base64Util.decryptBase64(encodeData));;}}
 Base64算法的實際應用
 
 
base64早期用于郵件傳輸,用于解決亂碼問題。
可以通過telnet 進行郵件傳輸,首先開啟telnet服務,然后以管理員形式打開cmd然后輸入:telnet smtp.163.com 25 然后回車進入以下界面:
輸入HELO 回車,然后輸入AUTH LOGIN回車,輸入用戶名(base64)回車,輸入密碼(base64)回車提示成功;
輸入MAIL FROM:<xxx1@163.com> 回車
輸入RCPT TO:<xxx2@163.com>回車
輸入DATA
輸入subject : xxxxx
from:xxx1@163.com
to:xxx2@163.com
…..
如圖:
 
 
 java編碼實現
 
 
package com.cry.base64; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Socket;public class SMTPMain {public static void main(String[] args) {// 用戶名密碼String sender = "xxx1@163.com";String receiver = "xxx2@163.com";String password = "password";// 將用戶名和密碼進行Base64編碼String userBase64 = Base64Util.encryptBase64(sender.substring(0,sender.indexOf("@")).getBytes());String passBase64 = Base64Util.encryptBase64(password.getBytes());try {Socket socket = new Socket("smtp.163.com", 25);InputStream inputStream = socket.getInputStream();OutputStream outputStream = socket.getOutputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));PrintWriter writter = new PrintWriter(outputStream, true); System.out.println(reader.readLine());// writter.println("test base64");System.out.println(reader.readLine());// AUTH LOGIN >>>Base64writter.println("AUTH LOGIN");System.out.println(reader.readLine());writter.println(userBase64);System.out.println(reader.readLine());writter.println(passBase64);System.out.println(reader.readLine());// 設置 "MAIL FROM" 和 "RCPT TO"writter.println("MAIL FROM:<" + sender + ">");System.out.println(reader.readLine());writter.println("RCPT TO:<" + receiver + ">");System.out.println(reader.readLine());// 設置 "DATA"writter.println("DATA");System.out.println(reader.readLine());writter.println("SUBJECT:hello test");writter.println("FROM:" + sender);writter.println("TO:" + receiver);writter.println("Content-Type: text/plain;charset=\"gb2312\"");writter.println();writter.println("hello world!");writter.println(".");writter.println("");System.out.println(reader.readLine());// over 斷開connectwritter.println("RSET");System.out.println(reader.readLine());writter.println("QUIT");System.out.println(reader.readLine());} catch (Exception e) {e.printStackTrace();}} }
總結
以上是生活随笔為你收集整理的Base64算法的编程使用的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 网站域名是什么(域名注册购买)
- 下一篇: doggy什么币
