天天看點

ios 終端快捷編碼指令

如下列舉一些iOS編碼,解碼及加密指令;

一、MD5

MD5編碼是最常用的編碼方法之一,是從一段字元串中通過相應特征生成一段32位的數字字母混合碼。(相當于做hash)

終端代碼:

$ md5 -s "abc"      給字元串abc加密
           

二、Base64編碼、解碼

使用時,在傳輸編碼方式中指定base64。使用的字元包括大小寫字母各26個,加上10個數字,和加号“+”,斜杠“/”,一共64個字元,等号“=”用來作為字尾用途。

完整的base64定義可見RFC 1421和RFC 2045。編碼後的資料比原始資料略長,為原來的4/3。

終端指令

先cd 找到目前目錄
加密: $ base64 abc.png -o abc.txt
解密: $ base64 abc.txt -o png -D
           

三、對稱加解密

優點:算法公開、計算量小、加密速度快、加密效率高、可逆

缺點:雙方使用相同鑰匙,安全性得不到保證

現狀:對稱加密的速度比公鑰加密快很多,在很多場合都需要對稱加密,

相較于DES和3DES算法而言,AES算法有着更高的速度和資源使用效率,安全級别也較之更高了,被稱為下一代加密标準

nECB :電子代碼本,就是說每個塊都是獨立加密的

nCBC :密碼塊鍊,使用一個密鑰和一個初始化向量 (IV)對資料執行加密轉換

ECB和CBC差別:CBC更加複雜更加安全,裡面加入了8位的向量(8個0的話結果等于ECB)。在明文裡面改一個字母,ECB密文對應的那一行會改變,CBC密文從那一行往後都會改變。

ECB終端指令:

$ openssl enc -des-ecb -K  -nosalt -in msg1.txt -out msg1.bin
CBC終端指令:
$ openssl enc -des-cbc -K  -iv  -nosalt -in msg1.txt -out msg2.bin
           

四、RSA加密

RSA非對稱加密算法

非對稱加密算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)

公開密鑰與私有密鑰是一對,如果用公開密鑰對資料進行加密,隻有用對應的私有密鑰才能解密;如果用私有密鑰對資料進行加密,那麼隻有用對應的公開密鑰才能解密

特點:

非對稱密碼體制的特點:算法強度複雜、安全性依賴于算法與密鑰但是由于其算法複雜,而使得加密解密速度沒有對稱加密解密的速度快

對稱密碼體制中隻有一種密鑰,并且是非公開的,如果要解密就得讓對方知道密鑰。是以保證其安全性就是保證密鑰的安全,而非對稱密鑰體制有兩種密鑰,其中一個是公開的,這樣就可以不需要像對稱密碼那樣傳輸對方的密鑰了

基本加密原理:

(1)找出兩個“很大”的質數:P & Q

(2)N = P * Q

(3)M = (P – 1) * (Q – 1)

(4)找出整數E,E與M互質,即除了1之外,沒有其他公約數

(5)找出整數D,使得E*D除以M餘1,即 (E * D) % M = 1

經過上述準備工作之後,可以得到:

E是公鑰,負責加密

D是私鑰,負責解密

N負責公鑰和私鑰之間的聯系

加密算法,假定對X進行加密

(X ^ E) % N = Y

n根據費爾馬小定義,根據以下公式可以完成解密操作

(Y ^ D) % N = X

但是RSA加密算法效率較差,對大型資料加密時間很長,一般用于小資料。

常用場景:

分部要給總部發一段封包,先對封包整個進行MD5得到一個封包摘要,再對這個封包摘要用公鑰加密。然後把封包和這個RSA密文一起發過去。

總部接收到封包之後要先确定封包是否在中途被人篡改,就先把這個密文用私鑰解密得到封包摘要,再和整個封包MD5一下得到的封包摘要進行對比 如果一樣就是沒被改過。

原文:http://www.cnblogs.com/dsxniubility/p/4264777.html

繼續閱讀