牛骨文教育服务平台(让学习变的简单)
博文笔记

多种语言实现Base64编码解码

创建时间:2016-02-13 投稿人: 浏览次数:261

由于长度限制,上篇《网络信息传输编码解码》只介绍了编码解码的原理,本篇将把c#,vc,vb,delphi,php,python,asm 等语言的程序代码列于此,有些是从网上搜来的,供大家参考:

 

一。系统自带函数:

1.c#

 //base64 编码 解码 系统函数
 //编码
 byte[] bytes = Encoding.Default.GetBytes("要转换的字符串");//我是中国人ce d2  ca c7  d6 d0      b9 fa   c8 cb
 string b64 = Convert.ToBase64String(bytes);//"ztLKx9bQufrIyw==" 是 "我是中国人" base64的编码
 
//解码
  byte[] oo = Convert.FromBase64String(b64);//
  string vv =Encoding.Default.GetString ( oo); ;

 

2. PHP 系统有两个函数可以很方便地实现解码:base64_decode()与quoted_printable_decode(),前者可用于base64 编码的解码,后者是用于 QP 编码方法的解码。

 

3. python 代码  转换到base64 和qp : 

someBytes.append("x01xFFx41x42x43xC0xC1xC2x61x62x63",11)

 print someBytes.getEncoded("base64")

 print someBytes.getEncoded("qp")

 

二。编写函数

 

1. C# 编码解码 base64

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace base64WindowsApplication17
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            string yy="我是中国人";
            string be = Class1.Base64Code(yy);
            string de = Class1.Base64Decode(be);
            MessageBox.Show(yy+ " " + be+ " "+ de);

        }
    }
}

 

using System;
using System.Collections.Generic;
using System.Text;

namespace base64WindowsApplication17
{
    class Class1
   // public class Base64Protector
    {
        /// <summary>
        /// Base64加密
        /// </summary>
        /// <param name="Message">需要加密的字符串</param>
        /// <returns>加密后的字符串</returns>
        static public string Base64Code(string Message)
        {
            char[] Base64Code = new char[]{"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T",
                    "U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n",
                    "o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7",
                     "8","9","+","/","="};
            byte empty = (byte)0;
            System.Collections.ArrayList byteMessage = new System.Collections.ArrayList(System.Text.Encoding.Default.GetBytes(Message));
            System.Text.StringBuilder outmessage;
            int messageLen = byteMessage.Count;
            int page = messageLen / 3;
            int use = 0;
            if ((use = messageLen % 3) > 0)
            {
                for (int i = 0; i < 3 - use; i++)
                    byteMessage.Add(empty);
   

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。