苹果封装的对称加密和非对称加密API

一、信息摘要算法5:MD5
1.系统库位置:<CommonCrypto/CommonHMAC.h>。
2.非加密算法,属于哈希散列,不可逆,用于检验数据完整性。

二、安全散列(哈希)算法SHA:
1.包含的散列算法:SHA-1,SHA-224,SHA-256,SHA-384,和SHA-512。
2.系统库位置:<CommonCrypto/CommonHMAC.h>。
3.SHA同样是散列算法,非加密算法。SHA基于MD5实现。

三、对称加密:
1.包含的加密算法:DES、3DES、AES、AES128等。
2.系统库位置:<CommonCrypto/CommonCryptor.h>的CCCrypt方法

四、非对称加密:
1.包含的加密算法:RSA
2.系统库位置:Security框架,主要有四个方法:
 (1)SecKeyEncrypt:使用公钥对明文加密。
 (2)SecKeyDecrypt:使用私钥对密文解密。
 (3)SecKeyRawSign:使用私钥对明文加签,生成数字签名。
 (4)SecKeyRawVerify:使用公钥对明文和数字签名验签,返回0代表验签通过。
3.通常用法:加密和解密用来保证数据安全,加签和验签用来防篡改。通常结合在一起使,步骤如下:
 (1)发起方使用接收方的公钥对明文加密,生成密文。
 (2)发起方使用自己的私钥对明文加签,生成数字签名。
 (3)接收方使用自己的私钥对密文解密,得到明文。
 (4)接收方使用发起方的公钥对明文和数字签名验签,检测是否是发起方发起的请求。
4.证书格式:DER、PEM、P12是生成密钥可选择的文件格式。
 (1)DER是Distinguished Encoding Rules的简称,是一种信息传输语法规则。
       在iOS端,我们的公钥使用的是DER格式的文件,可以从SecCertificateCreateWithData函数的data参数的说明中看到。
 (2)P12用于存放个人证书/私钥,他通常包含保护密码,2进制方式。
       在iOS端,我们的私钥使用的是P12格式的文件,可以从SecPKCS12Import函数的pkcs12_data参数说明看到。
 (3)而PEM格式是一种对DER进行封装的格式,他只是把der的内容进行了base64编码并加上了头尾说明。
 (4)OPENSSL命令行默认输出的都是PEM格式的文件,要能够在iOS下使用,我们需要指定使用DER或者先生成PEM然后转换成DER。P12格式也一样。
5.附图示:
(1)1、2、3、4为苹果提供的API。
(2)3可以理解为私钥加密。
(3)4中隐含公钥解密过程。首先将数字签名解密,然后和明文的SHA1值对比,看是否一致。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499971.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RSA算法原理

一、RSA算法数论&#xff1a;将两个大素数相乘十分容易&#xff0c;但是想要对其乘积进行因式分解却极其困难&#xff0c;因此可以将乘积公开作为加密密钥。二、RSA算法涉及三个参数&#xff0c;n、e1、e2。三、公私钥生成过程1、首先&#xff0c;需要两个大质数&#xff0c;p和…

idea插件开发(02)---相关概念介绍

上一篇已经介绍了idea插件开发最简单的一个例子 本篇来说说相关概念,部分概念是网上抄的,网友的不同说法,但大致都是同一个意思 1.idea介绍 idea整个组件结构是基于PicoContainer的,他是一个嵌入式的Ioc容器,有点像Spring的容器 我们做的idea插件,作为扩展功能组件,可以添加到…

ECC椭圆曲线加密算法原理

比特币使用椭圆曲线算法生成公钥和私钥&#xff0c;选择的是secp256k1曲线。与RSA&#xff08;Ron Rivest&#xff0c;Adi Shamir&#xff0c;Len Adleman三位天才的名字&#xff09;一样&#xff0c;ECC&#xff08;Elliptic Curves Cryptography&#xff0c;椭圆曲线加密&…

mysql报错 DuplicateKeyException分析与解决

在做数据库同步的时候,发现一个错误,mysql报错如下: org.springframework.dao.DuplicateKeyException: ### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:XXX ### The error may involve com.jd.medicine.b2…

[运维]---linux机器一般监控用到的概念记录

发布在linux上的机器,一般我们需要监测各项数据来证实服务器是没问题的, 如果出现问题,我们也可以通过以下指标找到问题的方向 容器指标硬件指标磁盘指标系统指标网络指标 容器指标 线程数 -当前容器内线程总数&#xff08;平均到每个核的线程数&#xff09;进程数 -当前容器…

SHA算法原理

一、SHA1算法简介 安全哈希算法&#xff08;Secure Hash Algorithm&#xff09;主要适用于数字签名标准&#xff08;Digital Signature Standard DSS&#xff09;里面定义的数字签名算法&#xff08;Digital Signature Algorithm DSA&#xff09;。对于长度小于2^64位的消息&am…

[数据库]---mysql 插入sql之 INSERT INTO和INSERT IGNORE INTO和REPLACE INTO和ON DUPLICATE KEY UPDATE比较应用

mysql插入一条数据方式有四种,接下来逐个说明验证: 前提: 有一个表,作为本次测试: CREATE TABLE zs_test (id int(11) NOT NULL AUTO_INCREMENT,order_id int(11) DEFAULT NULL,name varchar(255) DEFAULT NULL,PRIMARY KEY (id),UNIQUE KEY order_id_index (order_id) ) EN…

DES加密算法原理

一、DES算法理论 本世纪五十年代以来&#xff0c;密码学研究领域出现了最具代表性的两大成就。其中之一就是1971年美国学者塔奇曼 &#xff08;Tuchman&#xff09;和麦耶&#xff08;Meyer&#xff09;根据信息论创始人香农&#xff08;Shannon&#xff09;提出的「多重加密有…

[python]---从java到python(01)---基础与入门上手

前言 我本是java派的,已经有几年了,直接也接触过其他语言,比如从最早的汇编语言到高级语言始祖的C; 但是近来越发觉得python很火,现在以我的视角开始写入门python基础,算是入坑了; 我的计划是这个系列要更契合那些有java基础的同胞们,用你们已有的java基础,用对比的方式,更快的…

AES加密算法原理

一、摘要 AES&#xff08;The Advanced Encryption Standard&#xff09;是美国国家标准与技术研究所用于加密电子数据的规范&#xff0c;在2002年5月26日建立。它被预期能成为人们公认的加密包括金融、电信和政府数字信息的方法。AES 是一个新的可以用于保护电子数据的加密算法…

java获取本机ipv4,并使用Google Guava 缓存

java写个util,获取本机ip,并使用Google Guava 缓存起来 四个方法: 获取本机ipv4ip转16进制16进制转ip校验ip 首先,Google Guava使用的maven配置 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version&g…

OpenSSL库概述

一、背景技术SSL是Secure Sockets Layer&#xff08;安全套接层协议&#xff09;的缩写&#xff0c;可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时&#xff0c;提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户…

短信微信等消息发送系统的架构设计

消息发送系统 项目中的一种做法,简化总结如下 1.对外暴露接口1,供业务方调用 2.接口2的实现就是同步发送各种消息,比如发短信,发微信等,但不保证 3.对外暴露接口2,供业务方调用 4.接口2内部实现,也是发送消息,但是是通过mq解耦的 4.1.业务方调用接口2后,接口2的实现将会发送一…

大数运算库简介

一、技术背景在网络安全技术领域中各种加密解密算法的软件实现上始终有一个共同的问题就是如何在普通的 PC 机上实现大数的运算。我们日常生活中所应用的 PC 机内部字长多是32 位或 64 位&#xff0c;但是在各种加密解密的算法中为了达到一定的安全强度&#xff0c;都是要求在1…

内存溢出,频繁full gc 处理思路

内存溢出,频繁full gc 处理思路 1.导出整个JVM 中内存信息 jmap -dump:formatb,file文件名 [pid] 2.分析dump文件的两种方式: 2.1. jdk安装目录下,bin目录下,jvisualvm.exe双击打开 文件–装入–选择dump出来的文件 就可以开始分析了2.2. 使用eclipse,安装插件mat(MemoryAn…

Base64编码解码原理

一. Base64编码由来 为什么会有Base64编码呢&#xff1f;因为有些网络传送渠道并不支持所有的字节&#xff0c;例如传统的邮件只支持可见字符的传送&#xff0c;像ASCII码的控制字符就不能通过邮件传送。这样用途就受到了很大的限制&#xff0c;比如图片二进制流的每个字节不可…

eclipse mat 打开dump文件,明明大小1G,打开后却只有不到100M.其他的去哪了

eclipse mat 打开dump文件,明明大小1G,打开后却只有不到100M.其他的去哪了 Used heap dump 显示的大小远小于dump文件大小 解决: window-->Preferences-->memory Analuzer-->勾选keep unreachable objects-->apply and close

MVP模式介绍

一、概述MVP 是从经典的模式MVC演变而来&#xff0c;它们的基本思想有相通的地方&#xff1a;Controller/Presenter负责逻辑的处理&#xff0c;Model提供数据&#xff0c;View负责显示。二、MVC和MVP的区别作为一种新的模式&#xff0c;MVP与MVC有着一个重大的区别&#xff1a;…

eclipse mat 分析dump文件,打开文件报错,out of memeory

eclipse mat 分析dump文件,打开文件报错,out of memeory 解决: 1.打开eclipse报out of memeory通用 window-->Preferences-->java-->installed JREs-->选中-->edit--> 在default VM arguments栏中加入:-server -Xms4096m -Xmx4096m -XX:PermSize512m -XX:M…

VIPER模式介绍

一、概述VIPER模式的理念不属于MV(X)系类&#xff0c;其理念来自于建筑设计。建筑领域流行这样一句话&#xff0c;“我们虽然在营造建筑&#xff0c;但建筑也会重新塑造我们”。正如所有开发者最终领悟到的&#xff0c;这句话同样适用于构建软件。编写代码中至关重要的是&#…