Swift RSA加解密

前言

前兩天使用swift開發(fā)公司的新項目,要使用RSA加解密功能,但是找了下三方庫耸彪,發(fā)現(xiàn)其中比較常用的一個庫RSA_Swift,但是它只有公鑰加密忘苛、私鑰解密的功能蝉娜,不能滿足公鑰解密的需求,所以我想著自己寫一個庫扎唾,畢竟OC的庫之前已經(jīng)寫過了召川,只需要換成swift語言就行了(改了很久)。

簡介

MZRSA_Swift是一個輕量級框架胸遇,框架功能包含RSA加密/解密Data荧呐、RSA加密/解密String,支持字符串密鑰纸镊、Data密鑰和證書密鑰

引入方式

如果要使用該庫的話倍阐,大家cocoapods搜索一下MZRSA_Swift,使用最新版本就行

pod 'MZRSA_Swift', '~> 0.0.2'

如何使用

公鑰加密&私鑰解密(字符串密鑰)

  • 代碼示例
let PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArdklK4kIsOMuxTZ8jG1PRPfXqSDmaCIQ+xEpIRSssQ6jiuvhYZTMUbV22osgtivuyKdnHm+cvzGuZCSB8QFyCcM7l09HZVs0blLkrBAU5CVSv+6BzPQTVJytoi/VO4mlf6me1Y9bXWrrPw1YtC1mnB2Ix9cuaxOLpucglfGbUaGEigsUZMTD2vuEODN5cJi39ap+G9ILitbrnt+zsW9354pokVnHw4Oq837Fd7ZtP0nAA5F6nE3FNDGQqLy2WYRoKC9clDecD8T933azUD98b5FSUGzIhwiuqHHeylfVbevbBW91Tvg9s7vUMr0Y2YDpEmPAf0q4PlDt8QsjctT9kQIDAQAB"

let PRIVATE_KEY = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCt2SUriQiw4y7FNnyMbU9E99epIOZoIhD7ESkhFKyxDqOK6+FhlMxRtXbaiyC2K+7Ip2ceb5y/Ma5kJIHxAXIJwzuXT0dlWzRuUuSsEBTkJVK/7oHM9BNUnK2iL9U7iaV/qZ7Vj1tdaus/DVi0LWacHYjH1y5rE4um5yCV8ZtRoYSKCxRkxMPa+4Q4M3lwmLf1qn4b0guK1uue37Oxb3fnimiRWcfDg6rzfsV3tm0/ScADkXqcTcU0MZCovLZZhGgoL1yUN5wPxP3fdrNQP3xvkVJQbMiHCK6ocd7KV9Vt69sFb3VO+D2zu9QyvRjZgOkSY8B/Srg+UO3xCyNy1P2RAgMBAAECggEAInVN9skcneMJ3DEmkrb/5U2yw2UwBifqcbk/C72LVTTvmZOTgsH5laCARGUbQMCIfeEggVniGcuBI3xQ/TIqJmE6KI2gOyjOxadMiAZP/cCgHEbsF3Gxey3rBKCyhTCNSzaVswLNO0D8C+1bTatKEVuRRvsRykt/fL+HJ/FRteYYO9LuLv2WESJGE6zsi03P6snNiRracvYqz+Rnrvf1Xuyf58wC1C6JSjZ9D6tootPDBTEYaIIbpEnV+qP/3k5OFmA9k4WbkZI6qYzqSK10bTQbjMySbatovnCD/oqIUOHLwZpL051E9lz1ZUnDbrxKwT0BIU7y4DYaHSzrKqRsIQKBgQDTQ9DpiuI+vEj0etgyJgPBtMa7ClTY+iSd0ccgSE9623hi1CHtgWaYp9C4Su1GBRSF0xlQoVTuuKsVhI89far2Z0hR9ULr1J1zugMcNESaBBC17rPoRvXPJT16U920Ntwr00LviZ/DEyvmpVDagYy+mSK0Wq+kH7p5aR5zAHXWrQKBgQDSqQ6TBr5bDMvhpRi94unghiWyYL6srSRV9XjqDpiNU+yFwCLzSG610DyXFa3pV138P+ryunqg1LtKsOOtZJONzbS1paINnwkvfwzMpI7TjCq1+8rxeEhZ3AVmumDtPQK+YfGbxCQ+LAOJZOu8lGv1O7tsbXFp0vh5RmWHWHvy9QKBgCMGPi9JsCJ4cpvdddQyizLk9oFxwAlMxx9G9P08H7kdg4LW6l0Gs+yg/bBf86BFHVbmXW8JoBwHj418sYafO+Wnz8yOna6dTBEwiG13mNvzypVu4nKiuQPDh8Ks/rdu1OeLGbC+nzbnCcMuKw5epee/WYqO8kmCXRbdv4ePTvntAoGBAJYQ9F7saOI3pW2izJNIeE8HgQcnP+2GkeHiMjaaGzZiWJWXH86rBKLkKqV+PhuBr2QorFgpW34CzUER7b7xbOORbHASA/UsG8EIArgtacltimeFbTbC9td8kyRxFOcrlS7GWvUZrq/TbtmLWRtHp/hUitlcxXQbZAIQkfbuo62ZAoGBAKBURvLGM0ethkvUHFyGae2YGG/s+u+EYd2zNba7A6qnfzrlMHVPiPO6lx31+HwhuJ0tBZWMJKhEZ5PWByZzreVKVH5fE5LoQLo+B3VCTyTc1fJ9RKLAPrPqHuvzPHHP/n84XHGeit3e4ytd3Mm/6CNbrg7xux2M4RDQmN//1UOY"

var ss = "fajsdajdadj"
MZLog(ss)
ss = MZRSA.encryptString(ss, publicKey: PUBLIC_KEY)!
MZLog(ss)
ss = MZRSA.decryptString(ss, privateKey: PRIVATE_KEY)!
MZLog(ss)
  • 運行結(jié)果
在文件(ViewController.swift)第(198)行
 fajsdajdadj


在文件(ViewController.swift)第(200)行
 Xj2jXTCsipJ3fvOjwS7mFs3xHV7aNmQe7Q0yjPC4Ai5iX6ymkvmQzgr9NlyOQIKq
pUex94ORmT5RuCL8jMt++y/g9NiVuS4mCdlb1m3ZwKyABTXTOxncK4QdFFXwy//F
XjOoNRgniq/RSvdO32qiPNCjGECODPMC4sJDsUkWX9SeeBPGIVqO/yorVD+s5Q1Z
1R6l6ju5u0r4cnBDEibN4/ZNeH9vAy7CwyJuThz2BNPmIedNofbH7c5+BbbxVS4H
2czR2O+uarPEXTZ1cVnCLAs71y1dg80ckqeSAVLBsBB4FcqcPUqCHm9MwatdLW3w
pBsk3WVfCxgMoJpcCzqF5Q==


在文件(ViewController.swift)第(202)行
 fajsdajdadj

私鑰加密&公鑰解密(字符串密鑰)

  • 代碼示例
var zz = "skmkfmaksfmaksfaadddfasdadfa"
MZLog(zz)
zz = MZRSA.encryptString(zz, privateKey: PRIVATE_KEY)!
MZLog(zz)
zz = MZRSA.decryptString(zz, publicKey: PUBLIC_KEY)!
MZLog(zz)
  • 運行結(jié)果
在文件(ViewController.swift)第(205)行
 skmkfmaksfmaksfaadddfasdadfa


在文件(ViewController.swift)第(207)行
 ACj8OCXFLfLWM58we5Vdr1jvWDXbG/X0rm7cG6zoilWjIXXvl5Fj6XNVVpkgpSuh
1vfU85b4RAIWmdBNXfvm4OcyPbNluYKtkFFTKlaZmPb4gm32dkZeGtwDx/NumzCE
mUAOkde0AAlVGM6+u1JJLZmD3FLL7xYdi4d+wuWVuz6WgLFZcqSrn8IVH7+ERI+l
cTGuse6wruv0SIYzzN5YGor3ViXpr2FEuvGryM8W61oPQUiJ6VpKGbR+0Y5Cz3im
ElJ/1549SgDR91LvLG1eQipfJvCxd/3TwCJ2LARB+BGJK6g+gepKSFdJnpeWhQAJ
SE6il79JYl3MUcTRxIT0rg==


在文件(ViewController.swift)第(209)行
 skmkfmaksfmaksfaadddfasdadfa

公鑰加密&私鑰解密(Data密鑰)

let (privateKey, publicKey) = try! CC.RSA.generateKeyPair(2048)

var ss: String = "anksdkdd"
MZLog(ss)
ss = MZRSA.encryptString(ss, publicKeyData: publicKey)!
MZLog(ss)
ss = MZRSA.decryptString(ss, privateKeyData: privateKey)!
MZLog(ss)

私鑰加密&公鑰解密(Data密鑰)

let (privateKey, publicKey) = try! CC.RSA.generateKeyPair(2048)

var ss: String = "skdjdjd"
MZLog(ss)
ss = MZRSA.encryptString(ss, privateKeyData: privateKey)!
MZLog(ss)
ss = MZRSA.decryptString(ss, publicKeyData: publicKey)!
MZLog(ss)

公鑰加密&私鑰解密(證書密鑰)

var hh = "zwefdewfqfewfe"
MZLog(hh)
hh = MZRSA.encryptString(hh, publicKeyPath: Bundle.main.path(forResource: "public_key", ofType: "der")!)!
MZLog(hh)
hh = MZRSA.decryptString(hh, privateKeyPath: Bundle.main.path(forResource: "private_key", ofType: "p12")!)!
MZLog(hh)

私鑰加密&公鑰解密(證書密鑰)

var kk = "sddskdksflss"
MZLog(kk)
kk = MZRSA.encryptString(kk, privateKeyPath: Bundle.main.path(forResource: "private_key", ofType: "p12")!)!
MZLog(kk)
kk = MZRSA.decryptString(kk, publicKeyPath: Bundle.main.path(forResource: "public_key", ofType: "der")!)!
MZLog(kk)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末逗威,一起剝皮案震驚了整個濱河市峰搪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌庵楷,老刑警劉巖罢艾,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件楣颠,死亡現(xiàn)場離奇詭異尽纽,居然都是意外死亡,警方通過查閱死者的電腦和手機童漩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門弄贿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人矫膨,你說我怎么就攤上這事差凹。” “怎么了侧馅?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵危尿,是天一觀的道長。 經(jīng)常有香客問我馁痴,道長谊娇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任罗晕,我火速辦了婚禮济欢,結(jié)果婚禮上赠堵,老公的妹妹穿的比我還像新娘。我一直安慰自己法褥,他們只是感情好茫叭,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著半等,像睡著了一般揍愁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上杀饵,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天吗垮,我揣著相機與錄音,去河邊找鬼凹髓。 笑死烁登,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的蔚舀。 我是一名探鬼主播饵沧,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼赌躺!你這毒婦竟也來了狼牺?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤礼患,失蹤者是張志新(化名)和其女友劉穎是钥,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缅叠,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡悄泥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了肤粱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弹囚。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖领曼,靈堂內(nèi)的尸體忽然破棺而出鸥鹉,到底是詐尸還是另有隱情,我是刑警寧澤庶骄,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布毁渗,位于F島的核電站,受9級特大地震影響单刁,放射性物質(zhì)發(fā)生泄漏灸异。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望绎狭。 院中可真熱鬧细溅,春花似錦、人聲如沸儡嘶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蹦狂。三九已至誓篱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間凯楔,已是汗流浹背窜骄。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留摆屯,地道東北人邻遏。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像虐骑,于是被迫代替她去往敵國和親准验。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容