base64加密圖片
System.out.println(newFileEncryptAndDecrypt().decrypt("D:\a\"
+filename,"D:\a\"+filename,6));
這就是解密啊,第一個參數 是密文 路徑+文件名 第二個參數是 解密後文件存放 的路徑+文件名
第三個參數是 密碼長度+1
你密文 和解密後文件指定成一個了,這樣解密後的文件無法寫入會導致異常的。
這種加密方式也太幼稚了,文件位元組+1 就算加密 這已經讓人不想吐槽了。
Ⅱ base64加密比原來的數據長度增加多少
首先Base64不是一種加密方式,只是一種編碼。。然後長度呢,就是原來長度 * (4 / 3),不計最後一個或兩個等於號的話。
Ⅲ wordpress如何加密圖片地址
我不知道你這樣子加密的目的,但是可以考慮這個插件:
EP Image Base64 Encode
雖然很老了,但是很好用。直接把圖片數據用base64寫入到源文件里。別人看到的圖片地址如圖。
Ⅳ escapel加密與base64加密哪個更好
BASE64不是用來加密的。你看看經過BASE64編碼後的字元串,全部都是由標准鍵盤上面的常規字元組成,這樣編碼後的字元串在網關之間傳遞不會產生UNICODE字元串不能識別或者丟失的現象。你再仔細研究下EMAIL就會發現其實EMAIL就是用base64編碼過後再發送的。然後接收的時候再還原。
還有一種情況下用BASE64編碼也很好,比如一個圖片文件,或者其他任何二進制文件。我可以把它編碼成字元串。這樣用XML或者資料庫就能直接以文本的方式來存儲這些文件了。
Ⅳ base64編碼過的圖片還能加密嗎,怎麼在解碼的時候判斷有沒有加密
不知道。
給圖片加密,你可以使用超級加密3000。
超級加密3000採用國際上成熟的加密演算法和安全快速的加密方法,可以有效保障數據安全!
具體操作方法:
1下載安裝超級加密3000。
2 然後在需要加密的文件上單擊滑鼠右鍵選擇加密。
3 在彈出的文件加密窗口中設置文件加密密碼就OK了。
超級加密3000的下載地址你可以在網路上搜索超級加密3000,第一個就是。
Ⅵ 關於特殊的加工過的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;
}
}
}
}