⑴ base64_encode的介紹
base64_encode() returns 使用 base64 對 data 進行編碼。設計此種編碼是為了使二進制數據可以通過非純 8-bit 的傳輸層傳輸,例如電子郵件的主體。
⑵ c# 調用des64.dll ,除了加密/解密的方法,另外兩種方法 base64_decode 和base64_encode 方法如何使用
c# 自帶有加密/解密的類,包括 base64
// base 64 encode:
byte[] bytes = Encoding.Default.GetBytes("helloworld");
string str = Convert.ToBase64String(bytes);
//base 64 decode
byte[] bytes = Convert.FromBase64String(str);
string str = Encoding.Default.GetString(bytes));
⑶ C++ 把字元串轉為base64
在 ATLENC.H 里有一個庫函數:
BOOL Base64Encode(
_In_reads_(nSrcLen) const BYTE *pbSrcData,
_In_ int nSrcLen,
_When_(*pnDestLen > 0, _Out_writes_to_(*pnDestLen, *pnDestLen)) LPSTR szDest,
_Inout_ int *pnDestLen,
_In_ DWORD dwFlags = ATL_BASE64_FLAG_NONE)
用法:
input: buf(byte), buflen, out StringA, outLen, 轉換模式.
Base64Encode(buf,buflen,strA.GetBuffer(outlen),&outlen, ATL_BASE64_FLAG_NONE))
⑷ base64_encode的實例說明
使用base64_encode()函數對簡單字元串進行編碼。
<?php
$str = 'This is an encoded string';
echo base64_encode($str);
?>
此示例將顯示:
== 需要發送一個多媒體MIME郵件,通過電子郵件附加文件,而不是提供直接下載鏈接到一個文件,這才是解決方案。
<?php
$tempfile = '/full/path/to/file.zip';
$thisfile = 'file.zip';
// Encode the file ready to send it off
$handle = fopen($tempfile,'rb');
$file_content = fread($handle,filesize($tempfile));
fclose($handle);
$encoded = chunk_split(base64_encode($file_content));
// create the email and send it off
$subject = File you requested from RRWH;
$from = 這是一個電子郵件地址;
$headers = 'MIME-Version: 1.0' .
;
$headers .= 'Content-Type: multipart/mixed;
boundary=----=_NextPart_001_0011_1234ABCD.4321FDAC' .
;
$message = '
This is a multi-part message in MIME format.
------=_NextPart_001_0011_1234ABCD.4321FDAC
Content-Type: text/plain;
charset=us-ascii
Content-Transfer-Encoding: 7bit
Hello
We have attached for you the PHP script that you requested from RRWH as a zip file.
Regards
------=_NextPart_001_0011_1234ABCD.4321FDAC
Content-Type: application/octet-stream; name=';
$message .= $thisfile;
$message .= '
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=';
$message .= $thisfile;
$message .= '
';
$message .= $encoded;
$message .= '
------=_NextPart_001_0011_1234ABCD.4321FDAC--
';
// now send the email
mail($email, $subject, $message, $headers, -f$from);
?>
⑸ C語言的Base64解碼
加一個break跳出循環即可。
#include<stdio.h>
#include<string.h>
intmain(void)
{
chary[4000]/*原文本*/,b[3999*4/3]/*待解的Base64碼*/,mb[64]/*Base64碼表*/;
inti,j/*i,j為兩個計數用的變數*/,zu/*將待解的Base64碼分成4個字元一組,zu用於記錄第幾組*/;
for(i=0;i<26;++i)mb[i]=i+65;
for(i=0;i<26;++i)mb[i+26]=i+97;
for(i=0;i<10;++i)mb[i+52]=i+48;
mb[62]='+';
mb[63]='/';/*對碼表賦值*/
for(i=0;i<4000;++i)y[i]=0;
for(i=0;i<3999*4/3;b[i++]=0);/*清空兩個字元串*/
fgets(b,3999*4/3-1,stdin);/*輸入Base64碼*/
for(i=0;i<strlen(b)-1;++i)/*處理b中的每個字元*/
for(j=0;j<64;++j)
if(mb[j]==b[i])
{
b[i]=j; /*尋找各字元對應的碼表序號,貌似就是這里出的問題*/
break;/*一找到就跳出,可避免重復比較。沒有這句會重復比較到最後,如果j的值剛好落在字元數字的ASCII碼中,會引起的重復的給b[i]賦值*/
}
for(zu=0;zu<(strlen(b)-1)/4;++zu)/*Base64解碼*/
{
y[zu*3+0]=((b[zu*4+0]<<2))|(b[zu*4+1]>>4);
y[zu*3+1]=((b[zu*4+1]<<4))|(b[zu*4+2]>>2);
y[zu*3+2]=((b[zu*4+2]<<6))|b[zu*4+3];
}
printf("%s ",y);/*輸出原文本*/
return0;
}
⑹ VC++問題,怎麼對一個音頻文件進行base64編碼最好給一個函數
BASE64可以用來將binary的位元組序列數據編碼成ASCII字元序列構成的文本。完整的BASE64定義可見 RFC1421和 RFC2045。編碼後的數據比原始數據略長,為原來的4/3。在電子郵件中,根據RFC822規定,每76個字元,還需要加上一個回車換行。
轉換的時候,將三個byte的數據,先後放入一個24bit的緩沖區中,先來的byte占高位。數據不足3byte的話,於緩沖區中剩下的Bit用0補足。然後,每次取出6個bit,按照其值選擇+/中的字元作為編碼後的輸出。不斷進行,直到全部輸入數據轉換完成。如果最後剩下兩個輸入數據,在編碼結果後加1個「=」;如果最後剩下一個輸入數據,編碼結果後加2個「=」;如果沒有剩下任何數據,就什麼都不要加,這樣才可以保證資料還原的正確性。
⑺ C Sharp中Base64Encode是什麼意思
base64加密, 用於口令暗文驗證,一般密碼存在資料庫中都被這樣加密過
⑻ C 中怎麼將2進制字元串進行Base64編碼
在 ATLENC.H 里有一個庫函數:
BOOL Base64Encode(
_In_reads_(nSrcLen) const BYTE *pbSrcData,
_In_ int nSrcLen,
_When_(*pnDestLen > 0, _Out_writes_to_(*pnDestLen, *pnDestLen)) LPSTR szDest,
_Inout_ int *pnDestLen,
_In_ DWORD dwFlags = ATL_BASE64_FLAG_NONE)
用法:
input: buf(byte), buflen, out StringA, outLen, 轉換模式.
Base64Encode(buf,buflen,strA.GetBuffer(outlen),&outlen, ATL_BASE64_FLAG_NONE))
⑼ C語言編程:編寫一個函數base64加密
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
constchar*chlist="+/";
intencode_string(char*str,unsignedintlength,char*stat){
chars[103];
inti,j;
unsignedtemp;
if(length<=0)return1;
if(length>100)return2;
str[length]='