❶ BASE64加密原理
1. Base64使用A--Z,a--z,0--9,+,/ 這64個字元.
2. 編碼原理:將3個位元組轉換成4個位元組( (3 X 8) = 24 = (4 X 6) )先讀入3個位元組,每讀一個位元組,左移8位,再右移四次,每次6位,這樣就有4個位元組了.
3. 解碼原理:將4個位元組轉換成3個位元組.先讀入4個6位(用或運算),每次左移6位,再右移3次,每次8位.這樣就還原了.
❷ linux 大批量解base64 文本,最好是shell 腳本
cat文本
awk找到第四列
管道引入 base64 -d 解碼內容
cat test.csv | awk 『{print$4}』 | base64 -d
就可以了
注意引號是英文的
❸ base64解碼表
如果你明白base64是什麼東西, 這就很容易明白, 解碼的時候就查找這個表, 比如解碼讀入在變數c里, 那麼 DecodeTable[c]就是解出來的6位
如果你不明白base64編碼, 去google一下吧
❹ Base64密文,求解碼
#include <stdio.h>
#include <string.h>
#include <malloc.h>
char* ch64="+/";
unsigned char *encode(unsigned char *src,int srclen)
{
int n,buflen,i,j;
int pading=0;
unsigned char *buf;
static unsigned char *dst;
buf=src;
buflen=n=srclen;
if(n%3!=0) /* pad with '=' by using a temp buffer */
{
pading=1;
buflen=n+3-n%3;
buf=malloc(buflen+1);
memset(buf,0,buflen+1);
memcpy(buf,src,n);
for(i=0;i<3-n%3;i++)
buf[n+i]='=';
}
dst=malloc(buflen*4/3+1);
memset(dst,0,buflen*4/3+1);
for(i=0,j=0;i<buflen;i+=3,j+=4)
{
dst[j]=(buf[i]&0xFC)>>2;
dst[j+1]=((buf[i]&0x03)<<4) + ((buf[i+1]&0xF0)>>4);
dst[j+2]=((buf[i+1]&0x0F)<<2) + ((buf[i+2]&0xC0)>>6);
dst[j+3]=buf[i+2]&0x3F;
}
for(i=0;i<buflen*4/3;i++) /* map 6 bit value to base64 ASCII character */
dst[i]=ch64[dst[i]];
if(pading)
free(buf);
return dst;
}
unsigned char *decode(unsigned char *src)
{
int n,i,j;
unsigned char *p;
static unsigned char *dst;
n=strlen(src);
for(i=0;i<n;i++) /* map base64 ASCII character to 6 bit value */
{
p=strchr(ch64,src[i]);
if(!p)
break;
src[i]=p-ch64;
}
dst=malloc(n*3/4+1);
memset(dst,0,n*3/4+1);
for(i=0,j=0;i<n;i+=4,j+=3)
{
dst[j]=(src[i]<<2) + ((src[i+1]&0x30)>>4);
dst[j+1]=((src[i+1]&0x0F)<<4) + ((src[i+2]&0x3C)>>2);
dst[j+2]=((src[i+2]&0x03)<<6) + src[i+3];
}
return dst;
}
void main()
{
// char *src="zhangwu張武";
char src[]={'1','2','3',0,'a','b','*',0,'A','B','$'};
unsigned char *dst1;
unsigned char *dst2;
unsigned int i;
dst1=encode(src,11); /* the second parameter must accord with the first one */
printf("%s\n",dst1);
dst2=decode(dst1);
for(i=0;i<_msize(dst2);i++)
printf("%c",dst2[i]);
free(dst1);
free(dst2);
}
❺ 怎麼實現用BASE64編解碼
http://ke..com/link?url=--DV4FfXlH2XzNwWO174uyWJNJy3B-4n1V49yjzSK_Kq2_zpv7SPNQpBc_
❻ 請教:關於Encoding:base64 解碼的問題
如果那確實是base64編碼的密文,那解碼出來後確實是dizh 不用聽上面兩位講的,base64是一種固定的編碼方式,即將3個位元組拆分重編成4個位元組,編碼方式是唯一的,不存在什麼不同的編碼格式,也不存在可以使用任意對照表的說法。 在.net中一條語句
❼ Java Base64加碼解碼 Base64.encodeBase64 ( ) 和 new BASE64Enccoder( ).encode( )區別
Base64.encodeBase64 ( ) 可以處理換行符,
new BASE64Enccoder( ).encode( )需要單獨處理換行符。
在linux/windows下,推薦使用第一種,不用自己單獨處理換行。
❽ Linux C base64 編解碼一般用在什麼地方(走過路過,也瞧過!)
1、Base64編碼可用於在HTTP環境下傳遞較長的標識信息。
2、在加解密的過程中也會用到Base64編解碼。比如Openssl中用EVP進行封裝的的函數,EVP_EncodeInit、EVP_EncodeUpdate、EVP_EncodeFinal等
3、迅雷的下載地址也是通過base64編碼生成的。
希望對您有幫助。
❾ linux怎麼獲取使用md5處理前的密碼
這里以字元串123456為例子,它的md5密文值為: 這里以1.txt為需要被加密的文件。 一、 用oppnssl md5 加密字元串和文件的方法。 1. oppnssl md5 加密字元串的方法 a.手動輸入命令及過程如下: #openssl //在終端中輸入openssl後回車。 OpenSSL> md5 //輸入md5後回車 123456 //接著輸入123456,不要輸入回車。然後按3次ctrl+d。 123456 //123456後面的就是密文了 解釋:為何在輸入123456後不回車呢? 是因為openssl默認會把回車符當做要加密的字元串中的一個字元,所以得到的結果不同。如果你輸入123456後回車,在按2次ctrl+d。得到的結果是: OpenSSL> md5 123456 //因為openssl不忽略回車符導致的 b.或者直接用管道命令 # echo -n 123456 | openssl md5 //必須要有-n參數,否則就不是這個結果了。 解釋:為何要加-n這個參數? -n就表示不輸入回車符,這樣才能得到正確的結果。如果你不加-n,那麼結果和前面說的一樣為: //因為openssl不忽略回車符導致的 2.用openssl加密文件。 #openssl md 5 -in 1.txt ##################################################3 Openssl其他相關加密的命令參數:引自:實用命令:利用openssl進行BASE64編碼解碼、md5/sha1摘要、AES/DES3加密解密 收藏 一. 利用openssl命令進行BASE64編碼解碼(base64 encode/decode) 1. BASE64編碼命令 對字元串『abc』進行base64編碼: # echo abc | openssl base64 YWJjCg== (編碼結果) 如果對一個文件進行base64編碼(文件名t.txt): # openssl base64 -in t.txt 2. BASE64解碼命令 求base64後的字元串『YWJjCg==』的原文: # echo YWJjCg== | openssl base64 -d abc (解碼結果) 如果對一個文件進行base64解碼(文件名t.base64): # openssl base64 -d -in t.base64 二. 利用openssl命令進行md5/sha1摘要(digest) 1. 對字元串『abc』進行md5摘要計算:echo abc | openssl md5 若對某文件進行md5摘要計算:openssl md5 -in t.txt 2. 對字元串『abc』進行sha1摘要計算:echo abc | openssl sha1 若對某文件進行sha1摘要計算:openssl sha1 -in t.txt 三. 利用openssl命令進行AES/DES3加密解密(AES/DES3 encrypt/decrypt) 對字元串『abc』進行aes加密,使用密鑰123,輸出結果以base64編碼格式給出: # echo abc | openssl aes-128-cbc -k 123 -base64 U2FsdGVkX18ynIbzARm15nG/JA2dhN4mtiotwD7jt4g= (結果) 對以上結果進行解密處理: # echo U2FsdGVkX18ynIbzARm15nG/JA2dhN4mtiotwD7jt4g= | openssl aes-128-cbc -d -k 123 -base64 abc (結果) 若要從文件里取原文(密文)進行加密(解密),只要指定 -in 參數指向文件名就可以了。 進行des3加解密,只要把命令中的aes-128-cbc換成des3就可以了。 註:只要利用openssl help就可以看到更多的安全演算法了。 ############################################### 二、 利用php的md5函數加密字元串 #touch a.php //創建a.php文件 #vi a.php //用vi 編輯a.php文件 將<?php echo md5(123456); ?>輸入進去後保存 #php a.php //運行a.php文件 顯示: 三、 利用md5sum命令 A.在linux或Unix上,md5sum是用來計算和校驗文件報文摘要的工具程序。一般來說,安裝了Linux後,就會有md5sum這個工具,直接在命令行終端直接運行。可以用下面的命令來獲取md5sum命令幫助 man md5sum #md5sum –help 有個提示:「With no FILE, or when FILE is -, read standard input.」翻譯過來就是「如果沒有輸入文件選項或者文件選項為 - ,則從標磚讀取輸入內容」,即可以直接從鍵盤讀取字元串來加密。 利用md5sum加密字元串的方法 # md5sum //然後回車 123456 //輸入123456.然後按兩次ctrl+d. 顯示: 123456 紅色代表加密後的值 還可以用管道命令: #echo -n '123123' | md5sum 或者寫成md5加密腳本,名字叫md5.sh, 將以下內容復制進腳本里: #!/bin/bash echo -n $1 | md5sum | awk '{print $1}' 保存後,給腳本執行許可權。 #sh md5.sh 123456 顯示: B.其實也可以將文本放入文本文件,然後用md5sum 加密改文本,也可以得到字元串加密的值。過程如下: #touch a.txt #echo -n 123456 > a.txt //將123456寫進文本文件,不能丟了 –n參數,避免回車符干擾 #md5sum a.txt 顯示: a.txt ctrl+d有兩個含義: 一是向程序發送文件輸入結束符EOF。 二是向程序發送exit退出指令。程序收到信號後具體動作是結束輸入、然後等待,還是直接退出,那就要看該程序捕獲信號後是如何操作的了。 md5sum屬於第一個含義。兩次strl+d了,第一次讀取EOF指令,再次捕獲就會當成exit指令。而shell一類的程序,會直接把ctrl+d解析為退出指令。
❿ 關於base64解碼問題。在線等、
如果那確實是base64編碼的密文,那解碼出來後確實是dizh
不用聽上面兩位講的,base64是一種固定的編碼方式,即將3個位元組拆分重編成4個位元組,編碼方式是唯一的,不存在什麼不同的編碼格式,也不存在可以使用任意對照表的說法。
在.net中一條語句就可解碼
System.Text.ASCIIEncoding.ASCII.GetString(Convert.FromBase64String("ZGl6aA=="));