一.MD5加密
MD5加密是最常用的加密方法之一,是從一段字符串中通過相應(yīng)特征生成一段32位的數(shù)字字母混合碼强窖。
MD5主要特點(diǎn)是 不可逆凸椿,相同數(shù)據(jù)的MD5值肯定一樣,不同數(shù)據(jù)的MD5值不一樣(也不是絕對的翅溺,但基本是不能一樣的)脑漫。
MD5算法還具有以下性質(zhì):
- 1、壓縮性:任意長度的數(shù)據(jù)未巫,算出的MD5值長度都是固定的窿撬。
- 2、容易計(jì)算:從原數(shù)據(jù)計(jì)算出MD5值很容易叙凡。
- 3劈伴、抗修改性:對原數(shù)據(jù)進(jìn)行任何改動,哪怕只修改1個字節(jié)握爷,所得到的MD5值都有很大區(qū)別跛璧。
- 4、弱抗碰撞:已知原數(shù)據(jù)和其MD5值新啼,想找到一個具有相同MD5值的數(shù)據(jù)(即偽造數(shù)據(jù))是非常困難的追城。
- 5、強(qiáng)抗碰撞:想找到兩個不同的數(shù)據(jù)燥撞,使它們具有相同的MD5值座柱,是非常困難的迷帜。
MD5雖然說是不可逆的 但是由于有網(wǎng)站http://www.cmd5.com的存在,專門用來查詢MD5碼 所以有的簡單的MD5碼是可以在這里搜到源碼的色洞。
為了讓MD5碼更加安全 涌現(xiàn)了很多其他方法 如加鹽戏锹。 鹽要足夠長足夠亂 得到的MD5碼就很難查到。
終端代碼:$ echo -n abc|openssl md5 給字符串a(chǎn)bc加密
二.HMAC加密
此加密方法需要先生成密鑰火诸,然后再對密碼進(jìn)行MD5和HMAC加密锦针,數(shù)據(jù)庫中需要存放當(dāng)時使用的密鑰和密碼加密后的密文
在用戶登陸時 再次對填入的密碼用密鑰進(jìn)行加密 并且還要加上當(dāng)前時間(精確到分鐘) 再次HMAC加密,服務(wù)器里也會拿出以前存放的密文加上時間再次加密置蜀。所以就算黑客在中途截取了密碼的密文 也在能在1分鐘只能破譯才能有效奈搜,大大加強(qiáng)了安全性。服務(wù)器為了考慮到網(wǎng)絡(luò)的延遲一般會多算一種答案盯荤,如23分過來的密碼 他會把23分和22分的都算一下和用戶匹配只要對上一個就允許登陸馋吗。
如圖 用戶注冊與用戶登錄
三.base64加密
在MIME格式的電子郵件中,base64可以用來將binary的字節(jié)序列數(shù)據(jù)編碼成ASCII字符序列構(gòu)成的文本廷雅。使用時耗美,在傳輸編碼方式中指 定base64。使用的字符包括大小寫字母各26個航缀,加上10個數(shù)字商架,和加號“+”,斜杠“/”芥玉,一共64個字符蛇摸,等號“=”用來作為后綴用途。
完整的base64定義可見RFC 1421和RFC 2045灿巧。編碼后的數(shù)據(jù)比原始數(shù)據(jù)略長赶袄,為原來的4/3。
原理圖
四: AES項(xiàng)目加密
#######4.1 注冊賬號
建議使用網(wǎng)易的郵箱抠藕,使用其他免費(fèi)郵箱可能會收不到驗(yàn)證郵件
#######4.2 添加 SSH 公鑰
開源中國幫助文檔地址:[https://git.oschina.net/oschina/git-osc/wikis/幫助#ssh-keys](https://git.oschina.net/oschina/git-osc/wikis/幫助#ssh-keys)
#######4.3 進(jìn)入終端饿肺,并輸入以下命令
# 切換目錄,MAC中目錄的第一個字符如果是 `.` 表示改文件夾是隱藏文件夾
$ cd ~/.ssh
# 查看當(dāng)前目錄文件
$ ls
# 生成 RSA 密鑰對
# 1> "" 中輸入個人郵箱
# 2> 提示輸入私鑰文件名稱盾似,直接回車
# 3> 提示輸入密碼敬辣,可以隨便輸入,只要本次能夠記住即可
$ ssh-keygen -t rsa -C "xxx@126.com"
# 查看公鑰內(nèi)容
$ cat id_rsa.pub
#######4.4 將公鑰內(nèi)容復(fù)制并粘貼至 https://git.oschina.net/profile/sshkeys
#######4.5 測試公鑰
# 測試 SSH 連接
$ ssh -T git@git.oschina.net
# 終端提示 `Welcome to Git@OSC, 刀哥!` 說明連接成功
#######4.6 新建項(xiàng)目&克隆項(xiàng)目
# 切換至項(xiàng)目目錄
$ cd 項(xiàng)目目錄
# 克隆項(xiàng)目零院,地址可以在項(xiàng)目首頁復(fù)制
$ git clone git@git.oschina.net:xxx/ProjectName.git
#########4.7 添加 gitignore
# ~/dev/github/gitignore/ 是保存 gitignore 的目錄
$ cp ~/dev/github/gitignore/Swift.gitignore .gitignore
- 從 https://github.com/github/gitignore獲取最新版本的 gitignore文件
- 添加 .gitignore文件之后溉跃,每次提交時不會將個人的項(xiàng)目設(shè)置信息(例如:末次打開的文件,調(diào)試斷點(diǎn)等)提交到服務(wù)器告抄,在團(tuán)隊(duì)開發(fā)中非常重要