最近在看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加密解密相关推荐

  1. C语言实现AES加密解密

    AES加密是美国联邦政府采用的一种块加密标准,如今已经被全世界广为使用.嵌入式开发中我们也经常会用到加密解密算法,如果没有硬件模块来实现,就需要用到C代码软件实现.下面介绍调用mbedTLS中的AES ...

  2. java php aes加密解密_php aes 加密解密可与java对接

    php aes 加密解密可与java对接 博主:liu1693 发表时间:2017-02-23 16:52:27 浏览量:100 class Encrypt{ //加密方法 public static ...

  3. android、ios、php之间AES加密解密

    使用原因: 因为在项目中,需要在与客户端(IOS,Android)交互的时候,保存一些私有信息,不被别人看到,所以,使用了比较流行的可以反向加解密的AES. PHP 源码 <?php$aes = ...

  4. python 加密解密_python实现AES加密解密

    本文实例为大家分享了python实现AES加密解密的具体代码,供大家参考,具体内容如下 (1)对于AES加密解密相关知识 (2)实现的功能就是输入0-16个字符,然后经过AES的加密解密最后可以得到原 ...

  5. AES加密解密算法Java实现

    AES加密算法是密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DE ...

  6. openssl与cryptoAPI交互AES加密解密

    原文: http://blog.csdn.net/zhouyuqwert/article/details/7422467 有读者指出代码贴两遍,修改下. 继上次只有CryptoAPI的加密后,这次要实 ...

  7. c php aes加密解密,php的AES加密解密

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. $privateKey = "1234567812345678"; $ ...

  8. 理解AES加密解密的使用方法

    很多人对于AES加密并不是很了解,导致互相之间进行加密解密困难. 本文用简单的方式来介绍AES在使用上需要的知识,而不涉及内部算法.最后给出例子来帮助理解AES加密解密的使用方法. AES的麻烦 相比 ...

  9. C#中使用DES和AES加密解密

    代码 using System; using System.Text; using System.Security.Cryptography; using System.IO; namespace M ...

  10. Javascript实现AES加密解密(ECB/CBC)

    环境配置 js文件https://code.google.com/archive/p/crypto-js/downloads 在线AES加密解密地址http://tool.chacuo.net/cry ...

最新文章

  1. Atitit.eclipse 4.3 4.4  4.5 4.6新特性
  2. 马云的移动战略:变革和创新
  3. 叶老师的对于数学的分析的摘抄!十分的认可!
  4. python中怎么表示整数的点称为整点_智慧职教云课堂APPPython程序设计基础答案公众号...
  5. DPDK精准测量时间
  6. 用WEB技术栈开发NATIVE应用(二):WEEX 前端SDK原理详解
  7. 技术开发频道一周精选2007-8-3
  8. 管家婆普及版_昆明逸马软件 — 管家婆服装普及版
  9. 手机经纬度在线转换工具链接
  10. vue页面引用echart的词云图
  11. 服务器vmware新建虚拟机教程,如何创建虚拟机教程全解
  12. matlab 取数组第一行,matlab中如取数组的矩阵的一行出来成为一个向量?
  13. 第3章 使用masm
  14. Android Wear和二维码
  15. An Apple a day keeps the doctor away
  16. 你听过哪些与房东有关的悲催的故事?
  17. python与vba的区别_选择VBA还是Python?
  18. 办公室养龟有什么讲究,办公室养龟风水
  19. Linux各发行版的前世今生
  20. Caused by: org.xml.sax.SAXParseException;必须为元素类型 mapping 声明属性 resourse。

热门文章

  1. 目前最完美的魔兽世界服务端AzerothCore,Centos系统docker编译教程
  2. 盈世邮箱服务器pop3,Coremail私有协议为什么比POP3协议、IMAP协议更好
  3. 在Qt环境下进行人机交互界面设计--工具条
  4. PHP编写两个数的最小公倍数,两个数的最小公倍数怎么求
  5. swing的几种布局
  6. 打印插件Lodop响应慢、卡顿问题分析与解决方案以及常见问题
  7. 交换机与路由器登录密码破解
  8. Cesium 编辑空间测量功能,任意修改
  9. 全景图怎么拍?相机参数该怎样设置呢?
  10. 微信网页授获取code