當前位置:首頁 » 密碼管理 » 64加密網站

64加密網站

發布時間: 2023-10-09 10:19:57

『壹』 求安卓加密,安卓應用加密方式

android是用java語言開發的,java語言,JDK給我們提供了非常多的加密演算法

如基本的單向加密演算法:

  1. BASE64 嚴格地說,屬於編碼格式,而非加密演算法

  2. MD5(Message Digest algorithm 5,信息摘要演算法)

  3. SHA(Secure Hash Algorithm,安全散列演算法)

  4. HMAC(Hash Message Authentication Code,散列消息鑒別碼)


復雜的對稱加密(DES、PBE)、非對稱加密演算法:

  1. DES(Data Encryption Standard,數據加密演算法)

  2. PBE(Password-based encryption,基於密碼驗證)

  3. RSA(演算法的名字以發明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman)DH(Diffie-Hellman演算法,密鑰一致協議)

  4. DSA(Digital Signature Algorithm,數字簽名)

  5. ECC(Elliptic Curves Cryptography,橢圓曲線密碼編碼學)


以下就是講解BASE64、MD5、SHA、HMAC幾種方法

MD5、SHA、HMAC這三種加密演算法,可謂是非可逆加密,就是不可解密的加密方法。我們通常只把他們作為加密的基礎。單純的以上三種的加密並不可靠。


一. BASE64
按 照RFC2045的定義,Base64被定義為:Base64內容傳送編碼被設計用來把任意序列的8位位元組描述為一種不易被人直接識別的形式。(The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable.)
常見於郵件、http加密,截取http信息,你就會發現登錄操作的用戶名、密碼欄位通過BASE64加密的。


二. MD5

MD5 -- message-digest algorithm 5 (信息-摘要演算法)縮寫,廣泛用於加密和解密技術,常用於文件校驗。校驗?不管文件多大,經過MD5後都能生成唯一的MD5值。好比現在的ISO校驗,都 是MD5校驗。怎麼用?當然是把ISO經過MD5後產生MD5的值。一般下載linux-ISO的朋友都見過下載鏈接旁邊放著MD5的串。就是用來驗證文 件是否一致的。


三. SHA

SHA(Secure Hash Algorithm,安全散列演算法),數字簽名等密碼學應用中重要的工具,被廣泛地應用於電子商務等信息安全領域。雖然,SHA與MD5通過碰撞法都被破解了, 但是SHA仍然是公認的安全加密演算法,較之MD5更為安全。


四. HMAC
HMAC(Hash Message Authentication Code,散列消息鑒別碼,基於密鑰的Hash演算法的認證協議。消息鑒別碼實現鑒別的原理是,用公開函數和密鑰產生一個固定長度的值作為認證標識,用這個 標識鑒別消息的完整性。使用一個密鑰生成一個固定大小的小數據塊,即MAC,並將其加入到消息中,然後傳輸。接收方利用與發送方共享的密鑰進行鑒別認證 等。

『貳』 關於WebSafeBase64的加密和解密,求解答

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

『叄』 2.哈希加密 & base64加密

一、哈希HASH

哈希(散列)函數  MD5 SHA1/256/512 HMAC

Hash的特點:

     1.演算法是公開的

     2.對相同數據運算,得到的結果是一樣的

     3.對不同數據運算,如MD5得到的結果是128位,32個字元的十六進製表示,沒法逆運算

1.MD5加密

MD5加密的特點:

    不可逆運算

    對不同的數據加密的結果是定長的32位字元(不管文件多大都一樣)

    對相同的數據加密,得到的結果是一樣的(也就是復制)。

    抗修改性 : 信息「指紋」,對原數據進行任何改動,哪怕只修改一個位元組,所得到的 MD5 值都有很大區別.

    弱抗碰撞 : 已知原數據和其 MD5 值,想找到一個具有相同 MD5 值的數據(即偽造數據)是非常困難的.

    強抗碰撞: 想找到兩個不同數據,使他們具有相同的 MD5 值,是非常困難的

MD5 應用:

一致性驗證:MD5將整個文件當做一個大文本信息,通過不可逆的字元串變換演算法,產生一個唯一的MD5信息摘要,就像每個人都有自己獨一無二的指紋,MD5對任何文件產生一個獨一無二的數字指紋。

那麼問題來了,你覺得這個MD5加密安全嗎?其實是不安全的,不信的話可以到這個網站試試:md5破解網站。可以說嗖地一下就破解了你的MD5加密!

2.SHA加密

    安全哈希演算法(Secure Hash Algorithm)主要適用於數字簽名標准(Digital Signature Standard DSS)裡面定義的數字簽名演算法(Digital Signature Algorithm DSA)。對於長度小於2^64位的消息,SHA1會產生一個160位的消息摘要。當接收到消息的時候,這個消息摘要可以用來驗證數據的完整性。在傳輸的過程中,數據很可能會發生變化,那麼這時候就會產生不同的消息摘要。當讓除了SHA1還有SHA256以及SHA512等。

二、base64加密

1.Base64說明

    描述:Base64可以成為密碼學的基石,非常重要。

    特點:可以將任意的二進制數據進行Base64編碼

    結果:所有的數據都能被編碼為並只用65個字元就能表示的文本文件。

    65字元:A~Z a~z 0~9 + / =

    對文件進行base64編碼後文件數據的變化:編碼後的數據~=編碼前數據的4/3,會大1/3左右。

2.命令行進行Base64編碼和解碼

    編碼:base64 123.png -o 123.txt

    解碼:base64 123.txt -o test.png -D

2.Base64編碼原理

    1)將所有字元轉化為ASCII碼;

    2)將ASCII碼轉化為8位二進制;

    3)將二進制3個歸成一組(不足3個在後邊補0)共24位,再拆分成4組,每組6位;

    4)統一在6位二進制前補兩個0湊足8位;

    5)將補0後的二進制轉為十進制;

    6)從Base64編碼表獲取十進制對應的Base64編碼;

處理過程說明:

    a.轉換的時候,將三個byte的數據,先後放入一個24bit的緩沖區中,先來的byte占高位。

    b.數據不足3byte的話,於緩沖區中剩下的bit用0補足。然後,每次取出6個bit,按照其值選擇查表選擇對應的字元作為編碼後的輸出。

    c.不斷進行,直到全部輸入數據轉換完成。

『肆』 用base64加密dedecms列表頁

其實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++ )
{

回答不容易,希望能幫到您,滿意請幫忙採納一下,謝謝 !

熱點內容
idrac中怎麼控制伺服器 發布:2024-11-30 02:18:27 瀏覽:910
蜘蛛礦池伺服器地址 發布:2024-11-30 02:13:57 瀏覽:169
網易雲訪問記錄 發布:2024-11-30 02:13:17 瀏覽:376
java的數據類型有哪些 發布:2024-11-30 02:12:42 瀏覽:546
win8訪問win7共享 發布:2024-11-30 02:08:33 瀏覽:340
編程錄入錯誤 發布:2024-11-30 02:01:58 瀏覽:733
相機存儲卡無法讀取 發布:2024-11-30 02:00:15 瀏覽:772
美國訪問學者中介 發布:2024-11-30 01:49:47 瀏覽:491
手機版我的世界網易伺服器地鐵 發布:2024-11-30 01:38:57 瀏覽:522
pi幣密碼哪裡看 發布:2024-11-30 01:25:12 瀏覽:671