實現的原理
public class encryption ;
/*** 執行3des加密
* @param secretkey 秘鑰
* @param datastring 明文
* @return base64編碼文字
*/public static string encryptdes(string secretkey,string datastring) catch (exception ex)
return "";
}/**
* 3des解密
* @param secretkey 秘鑰
* @param decryptstring base64編碼文字
* @return 明文
*/public static string decryptdes(string secretkey,string decryptstring) catch (exception ex)
return "";
}public static void main(string args)
}
裡面的base64util是自己寫的編碼類,**如下:
public class base64util ;
private static byte base64decodechars = new byte ;
private base64util()
/*** 將位元組陣列編碼為字串
** @param data
*/public static string encode(byte data)
b2 = data[i++] & 0xff;
if (i == len)
b3 = data[i++] & 0xff;
}return sb.tostring();
}/**
* 解碼
** @param str
*/public static byte decode(string str) throws exception while (i < len && b1 == -1);
if (b1 == -1)
/* b2 */
do while (i < len && b2 == -1);
if (b2 == -1)
buf.write((b1 << 2) | ((b2 & 0x30) >>> 4));
/* b3 */
do b3 = base64decodechars[b3];
} while (i < len && b3 == -1);
if (b3 == -1)
buf.write(((b2 & 0x0f) << 4) | ((b3 & 0x3c) >>> 2));
/* b4 */
do b4 = base64decodechars[b4];
} while (i < len && b4 == -1);
if (b4 == -1)
buf.write(((b3 & 0x03) << 6) | b4);
}return buf.tobytearray();
}}
測試結果:
wr/xa+1pn1e8vkwedr//dw==
helloworld
3DES加密演算法
des是乙個經典的對稱加密演算法,但也缺陷明顯,即56位的金鑰安全性不足,已被證實可以在短時間內破解。為解決此問題,出現了3des,也稱triple des,3des為des向aes過渡的加密演算法,它使用3條56位的金鑰對資料進行三次加密。為了相容普通的des,3des並沒有直接使用 加密 加密 ...
Des與3Des加密解密
des和3des演算法 public class des b ret.tostring return ret.tostring 3des加密 金鑰不能每8位重複,例如 123456781234567812345678,如果這樣則演算法退化為des,c 會檢測,不能使用 明文 金鑰 public st...
iOS DES加密與3DES加密
最近專案中遇到了加解密的問題,然後翻閱了相關資料,成功搞定。現在將這些知識點總結一下,一是為了以後複習,二是為了給大家提供參考。1.先來說說des操作,定義我這裡就不敘述了,網上一堆一堆的。接下來說一下使用時應該注意的幾點。首先,大家要分清key 金鑰 data 待運算元據 跟mode 加密模式 其...