Swift最新的AES加密解密
最近在看AEC加密解密相关东西,网上查了很多资料的,在最新的Swift5.0 上会报错下面附上最新代码
第一步 :引入CryptoSwift 在Pods的Podfile文件里增加一行 pod 'CryptoSwift'
第二步:进入工程目录,pod install 下载CryptoSwift库
第三步:大家最关心的代码来了
亲测可用,欢迎使用
对于加密解密结果 可在http://tool.chacuo.net/cryptaes/ 进行比对
加油!
//
// AESCode.swift
// VideoMD
//
// Created by 王红艳 on 2020/12/4.
//
import UIKit
import CryptoSwift
class AESCode {
static let key = "yytkjfgzmnklfgyy"
static let iv = ""
static let salt = "DEgdrgadfsfasdbadrggasdfgosnt"
//MARK: -AES-ECB128加密
public static func Endcode_AES_ECB(strToEncode:String)->String {
var encodeString = ""
do {
let aes = try AES(key: key.bytes, blockMode: ECB(), padding: .pkcs7)
let encoded = try aes.encrypt(strToEncode.bytes)
encodeString = encoded.toBase64()!
print(encodeString)
} catch {
print(error.localizedDescription)
}
return encodeString
}
// MARK: -AES-ECB128解密
public static func Decode_AES_ECB(strToDecode:String)->String {
//decode base64
let data = NSData(base64Encoded: strToDecode, options: NSData.Base64DecodingOptions.init(rawValue: 0))
// byte 数组
var encrypted: [UInt8] = []
let count = data?.length
// 把data 转成byte数组
for i in 0..<count! {
var temp:UInt8 = 0
data?.getBytes(&temp, range: NSRange(location: i,length:1 ))
encrypted.append(temp)
}
// decode AES
var decrypted: [UInt8] = []
do {
decrypted = try AES(key: key.bytes, blockMode: ECB(), padding: .pkcs7).decrypt(encrypted)
} catch {
}
// byte 转换成NSData
let encoded = Data(decrypted)
var str = ""
//解密结果从data转成string
str = String(bytes: encoded.bytes, encoding: .utf8)!
return str
}
//MARK: -MD5 加密
public static func MD5(codeString: String) -> String {
// 加盐加密
let md5String = (codeString + salt).md5()
return md5String
}
}
Swift最新的AES加密解密相关推荐
- C语言实现AES加密解密
AES加密是美国联邦政府采用的一种块加密标准,如今已经被全世界广为使用.嵌入式开发中我们也经常会用到加密解密算法,如果没有硬件模块来实现,就需要用到C代码软件实现.下面介绍调用mbedTLS中的AES ...
- java php aes加密解密_php aes 加密解密可与java对接
php aes 加密解密可与java对接 博主:liu1693 发表时间:2017-02-23 16:52:27 浏览量:100 class Encrypt{ //加密方法 public static ...
- android、ios、php之间AES加密解密
使用原因: 因为在项目中,需要在与客户端(IOS,Android)交互的时候,保存一些私有信息,不被别人看到,所以,使用了比较流行的可以反向加解密的AES. PHP 源码 <?php$aes = ...
- python 加密解密_python实现AES加密解密
本文实例为大家分享了python实现AES加密解密的具体代码,供大家参考,具体内容如下 (1)对于AES加密解密相关知识 (2)实现的功能就是输入0-16个字符,然后经过AES的加密解密最后可以得到原 ...
- AES加密解密算法Java实现
AES加密算法是密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DE ...
- openssl与cryptoAPI交互AES加密解密
原文: http://blog.csdn.net/zhouyuqwert/article/details/7422467 有读者指出代码贴两遍,修改下. 继上次只有CryptoAPI的加密后,这次要实 ...
- c php aes加密解密,php的AES加密解密
下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. $privateKey = "1234567812345678"; $ ...
- 理解AES加密解密的使用方法
很多人对于AES加密并不是很了解,导致互相之间进行加密解密困难. 本文用简单的方式来介绍AES在使用上需要的知识,而不涉及内部算法.最后给出例子来帮助理解AES加密解密的使用方法. AES的麻烦 相比 ...
- C#中使用DES和AES加密解密
代码 using System; using System.Text; using System.Security.Cryptography; using System.IO; namespace M ...
- Javascript实现AES加密解密(ECB/CBC)
环境配置 js文件https://code.google.com/archive/p/crypto-js/downloads 在线AES加密解密地址http://tool.chacuo.net/cry ...
最新文章
- Atitit.eclipse 4.3 4.4 4.5 4.6新特性
- 马云的移动战略:变革和创新
- 叶老师的对于数学的分析的摘抄!十分的认可!
- python中怎么表示整数的点称为整点_智慧职教云课堂APPPython程序设计基础答案公众号...
- DPDK精准测量时间
- 用WEB技术栈开发NATIVE应用(二):WEEX 前端SDK原理详解
- 技术开发频道一周精选2007-8-3
- 管家婆普及版_昆明逸马软件 — 管家婆服装普及版
- 手机经纬度在线转换工具链接
- vue页面引用echart的词云图
- 服务器vmware新建虚拟机教程,如何创建虚拟机教程全解
- matlab 取数组第一行,matlab中如取数组的矩阵的一行出来成为一个向量?
- 第3章 使用masm
- Android Wear和二维码
- An Apple a day keeps the doctor away
- 你听过哪些与房东有关的悲催的故事?
- python与vba的区别_选择VBA还是Python?
- 办公室养龟有什么讲究,办公室养龟风水
- Linux各发行版的前世今生
- Caused by: org.xml.sax.SAXParseException;必须为元素类型 mapping 声明属性 resourse。