2
這裏進行加密使用Base64編碼字符串 - >解密(SWIFT)
(ew0KICAiTmV3c0dyYXBoIjogWw0KICAgIHsNCiAgICAgICJEYXRlIjogIjA0LUZlYiIsDQogICAgICAiTmV3c1Njb3JlIjogNTAuMCwNCiAgICAgICJUYWJsZU5hbWUiOiAiTmV3c0dyYXBoIg0KICAgIH0sDQogICAge)
,這裏是擴展方法解密
extension String
{
func fromBase64() -> String
{
let data = NSData.init(base64Encoded: self, options: []) ?? NSData()
return String(data: data as Data, encoding: String.Encoding.utf8) ?? ""
}
}
有一個在我的文本視圖沒有輸出字符串,但你會得到相同的字符串解密輸出 - >https://www.base64decode.org
但是,如果我從加密的字符串取得子串 - >
ew0KICAiTmV3c0dyYXBoIjogWw0KICAgIHsNCiAgICAgICJEYXRlIjogIjA0LUZlYiIsDQogICAgICAiTmV3c1Njb3JlIjogNTAuMCwNCiAgICAgICJUYWJsZU5hbWUiOiAiTmV3c0dyYXBoIg0KICAgIH0sDQog
然後我的代碼返回解密的字符串。 這是什麼問題? 可以任何一個請
'('和')'無效Base64字符 – Hamish
也不需要使用'NSData'的初始化程序,因爲之後您只需轉換爲'Data' - 只需使用'Data'的初始化程序。如果你不打算通過任何選項,你也不需要包含'options:'參數。你也可以在'String'的初始化程序中說'encoding:.utf8'。 – Hamish
有效的base64字符串中的字符數需要是4的倍數,但是您的第一個字符串(帶去除括號的括號)有165個字符,這就是爲什麼'NSData.init(base64Encoded:options:)'無法解碼它。參見[RFC-4648](https://tools.ietf.org/html/rfc4648)。 – OOPer