當前位置:首頁 » 密碼管理 » base64中文加密解密

base64中文加密解密

發布時間: 2022-02-24 02:42:20

php 中文字元串用base64加密後解密變成了sjis-win編碼格式,無法轉成utf8的,求解

解密前加. header("Content-type:text/html;charset=utf-8");

Ⅱ base64編碼加密解密程序,輸出有亂碼,為什麼

這個我也碰到過,要用memset(m_strUserName,0,sizeof(m_strUserName))來初始化m_strUserName數組.

Ⅲ base64 加密後可以還原回去,這種加密不就沒有安全性可言了

base64是一種編碼方式,編碼演算法完全公開,所以逆向解碼即可
而不是一種加密演算法

Ⅳ 中文字元串轉換(加密),base64轉換後太長了

看看這個就知道為什麼base64可以把二進制編碼成字母了:
http://en.wikipedia.org/wiki/Base64

還有一個uuencode, 但是通常是對文件用的,編碼完如下:
begin 600 a
,SM+*Q];0N?K(RPT*
`
end

如果只算第二,三行,一共不到20字元

Ⅳ base64的加密解密例子

加密:
如:數據 1100 0001,1100 0010,1100 0011
3Byte的數據加密成4Byte數據,演算法是把3B(24bit)的數分為4組每組6bit,每組前面加2位0
110000=》0011 0000
011100=》0001 1100
001011=》0000 1011
000011=》0000 0011

解密就是 反過來算

Ⅵ 能用bat程序進行Base64加密,解密嗎

前端使用js: pwd = new Base64.encode(pwd); 後端使用java, new Base64().decodeBase64(pwd.getBytes()).toString(); java的Base64()有提供decode和decodeBase64()這倆種方法,我習慣的以為是decode(),結果卻是後者. 希望對你有幫助.

Ⅶ base64加密中文亂碼 golang 怎麼解決

測試沒問題

python">chinese:="簡體中文"
str1:=base64.StdEncoding.EncodeToString([]byte(chinese))
fmt.Println(str1)
str2,_:=base64.StdEncoding.DecodeString(str1)
fmt.Println(string(str2))

Ⅷ 跪求一份e4a 中文編程Base64加密和jie密源碼

代碼是我自己寫的!水平有限,反正功能實現了。原來是迅雷鏈接轉換的函數,已經修改為Base64加密了,可以直接用,解密的沒有。。。需要的話參照易語言的修改吧。。。以下為函數:
函數 迅雷編碼(原文本 為 文本型) 為 文本型
變數 原文 為 位元組型()
變數 余數 為 整數型
變數 三位元組數據 為 位元組型(3)
變數 碼表 為 位元組型(64)
變數 len_x 為 整數型
變數 len_y 為 整數型
變數 i 為 整數型
變數 k 為 整數型
變數 結果 為 位元組型()
變數 原文擴充 為 位元組型(1)
變數 結果擴充 為 位元組型(1)
'原文本 = "AA" & 原文本 & "ZZ"
原文 = 文本到位元組(原文本 ,"GBK")
原文擴充(0) = 0
結果擴充(0) = 61
len_x = 取位元組集長度 (原文)
余數 = len_x % 3
如果 (余數 = 1) 則
原文 = 合並位元組集(原文 , 原文擴充)
原文 = 合並位元組集(原文 , 原文擴充)
len_x = len_x + 2
否則如果 (余數 = 2) 則
原文 = 合並位元組集(原文 , 原文擴充)
len_x = len_x + 1
結束 如果
len_y = len_x * 4 / 3
i = 1
碼表(0) = 65
碼表(1) = 66
碼表(2) = 67
碼表(3) = 68
碼表(4) = 69
碼表(5) = 70
碼表(6) = 71
碼表(7) = 72
碼表(8) = 73
碼表(9) = 74
碼表(10) = 75
碼表(11) = 76
碼表(12) = 77
碼表(13) = 78
碼表(14) = 79
碼表(15) = 80
碼表(16) = 81
碼表(17) = 82
碼表(18) = 83
碼表(19) = 84
碼表(20) = 85
碼表(21) = 86
碼表(22) = 87
碼表(23) = 88
碼表(24) = 89
碼表(25) = 90
碼表(26) = 97
碼表(27) = 98
碼表(28) = 99
碼表(29) = 100
碼表(30) = 101
碼表(31) = 102
碼表(32) = 103
碼表(33) = 104
碼表(34) = 105
碼表(35) = 106
碼表(36) = 107
碼表(37) = 108
碼表(38) = 109
碼表(39) = 110
碼表(40) = 111
碼表(41) = 112
碼表(42) = 113
碼表(43) = 114
碼表(44) = 115
碼表(45) = 116
碼表(46) = 117
碼表(47) = 118
碼表(48) = 119
碼表(49) = 120
碼表(50) = 121
碼表(51) = 122
碼表(52) = 48
碼表(53) = 49
碼表(54) = 50
碼表(55) = 51
碼表(56) = 52
碼表(57) = 53
碼表(58) = 54
碼表(59) = 55
碼表(60) = 56
碼表(61) = 57
碼表(62) = 43
碼表(63) = 47
三位元組數據 (0) = 1
三位元組數據 (1) = 2
三位元組數據 (2) = 3
k = 0
判斷循環首 k < len_y
結果 = 合並位元組集(結果 , 結果擴充)
k = k + 1
判斷循環尾
變數循環首 k = 1 至 len_x 步進 3
三位元組數據 (1 - 1) = 原文 (k - 1)
三位元組數據 (2 - 1) = 原文 (k + 1 - 1)
三位元組數據 (3 - 1) = 原文 (k + 2 - 1)
結果 (i - 1) = 碼表 (位右移 (三位元組數據 (1 - 1), 2) + 1 - 1)
結果 (i + 1 - 1) = 碼表 (位左移 (位與 (三位元組數據 (1 - 1), 3), 4) + 位右移 (三位元組數據 (2 - 1), 4) + 1 - 1)
結果 (i + 2 - 1) = 碼表 (位左移 (位與 (三位元組數據 (2 - 1), 15), 2) + 位右移 (三位元組數據 (3 - 1), 6) + 1 - 1)
結果 (i + 3 - 1) = 碼表 (位與 (三位元組數據 (3 - 1), 63) + 1 - 1)
i = i + 4
變數循環尾
如果 (余數 = 1) 則
結果 (len_y - 1) = 61
結果 (len_y - 2) = 61
否則如果 (余數 = 2) 則
結果 (len_y - 1) = 61
結束 如果
'迅雷編碼 = "

Ⅸ 為什麼我用Base64加密後,不能將它解密

base64編碼,不能算加密碼,因為沒有密鑰。就是說誰都可以解碼。
至於你說的不能解碼,只能猜測是你的解碼演算法不正確。
網路上有關於base64的詳細解釋,應該對你有幫助。

Ⅹ 如何使用Base64進行加密和解密

其實Base64的加密和解密的演算法不是很復雜,首先是定義自己64位的密鑰,64個字元是固定,但是順序是可以隨自己的設計而變化。例如:
char[] BaseTable=new char[64]{
'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','+','/'};

接下來,在加密的時候就是對於需要加密的每個字元,通過一定的演算法,轉換成上面64字元的一種;而在解密的時候則是把64字元中任意一個字元反算出加密前的字元。對於每個字元的操作有很多方法,這里就不一一介紹了。需要注意的是「=」字元,在Base64加密演算法中,是很重要的,它是起到補零作用。

以下是完整代碼:
//----------------------------- Base64 class --------------------------------------
//---------------------------------------------------------------------------------
//---File:clsBase64
//---Description:The class file to encode string or decode string in base algorith
//---Author:Knight
//---Date:Oct.8, 2005
//---------------------------------------------------------------------------------
//----------------------------{ Base64 class }-------------------------------------
using System;

namespace Base64
{
/// <summary>
/// Summary description for clsBase64.
/// </summary>
public class clsBase64
{
private char[] source;
private char[] lookupTable;
private int length, length2, length3;
private int blockCount;
private int paddingCount;

public clsBase64()
{
//
// TODO: Add constructor logic here
//
source = null;
length = length2 = length3 =0;
blockCount = 0;
paddingCount = 0;
}

/// <summary>
/// Create base64 char array using default base64 char array
/// </summary>
/// <param name="CreatePara"></param>
/// <returns>return the new base64 char array</returns>
private char[] CreateBase64Char( ref char[] CreatePara )
{
char[] BaseTable=new char[64]{
'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','+','/'};

const int CREATE_TYPE = 8;
byte bParaValue = 0;
byte bTemp;
for( int i = 0; i < CreatePara.Length; i++ )
{
bTemp = ( byte )( CreatePara[i] );
switch( bTemp % CREATE_TYPE )
{
case 1:
// 00000001
bTemp =( byte )( bTemp ^ 0x01 );
break;
case 2:
// 00000010
bTemp =( byte )( bTemp ^ 0x02 );
break;
case 3:
// 00000100
bTemp =( byte )( bTemp ^ 0x04 );
break;
case 4:
// 00001000
bTemp =( byte )( bTemp ^ 0x08 );
break;
case 5:
// 00010000
bTemp =( byte )( bTemp ^ 0x10 );
break;
case 6:
// 00100000
bTemp =( byte )( bTemp ^ 0x20 );
break;
case 7:
// 01000000
bTemp =( byte )( bTemp ^ 0x40 );
break;
default:
// 10000000
bTemp =( byte )( bTemp ^ 0x80 );
break;
}
bParaValue =( byte )( bParaValue ^ bTemp );
}

char chrTemp;
int nIndex;
switch( bParaValue % CREATE_TYPE )
{
case 1:
// Exechange 0 <--> 1, 2 <--> 3, 4 <--> 5, 6 <--> 7
for( int i = 0; i < BaseTable.Length / CREATE_TYPE; i++ )
{
nIndex = i * CREATE_TYPE;
chrTemp = BaseTable[nIndex];
BaseTable[nIndex] = BaseTable[nIndex + 1];
BaseTable[nIndex + 1] = chrTemp;
chrTemp = BaseTable[nIndex + 2];
BaseTable[nIndex + 2] = BaseTable[nIndex + 3];
}
//remove paddings
length3=length2-paddingCount;
byte[] result=new byte[length3];

for(int x=0;x<length3;x++)
{
result[x]=buffer2[x];
}

return result;
}

private byte char2sixbit(char c)
{
if( c=='=' )
return 0;
else
{
for (int x=0;x<64;x++)
{
if (lookupTable[x]==c)
return (byte)x;
}
//should not reach here
return 0;
}
}

}
}

熱點內容
iptables限制ip訪問 發布:2025-01-17 21:38:01 瀏覽:173
易拉罐壓縮機 發布:2025-01-17 21:25:35 瀏覽:923
在c語言是什麼意思啊 發布:2025-01-17 21:21:02 瀏覽:515
re0腳本 發布:2025-01-17 21:13:34 瀏覽:304
甜蜜家園密碼箱有什麼用 發布:2025-01-17 21:07:28 瀏覽:47
有教少兒編程 發布:2025-01-17 20:55:37 瀏覽:36
直播背腳本 發布:2025-01-17 20:50:18 瀏覽:409
ftp移動文件的mv命令 發布:2025-01-17 20:45:53 瀏覽:404
電腦上啥是伺服器 發布:2025-01-17 20:40:48 瀏覽:352
安卓手機怎麼連大眾車載 發布:2025-01-17 20:20:53 瀏覽:241