ios RSA加密解密一些相关问题

前言:

最近在做一个类似支付宝的理财项目,涉及到了RSA加解密方面的知识,在这里也遇到了不少的问题。写出来与大家分享心得。

1、什么是RSA加密解密(ios RSA加密解密过程)

这些网上都说的很清楚,大家可以从网上查找一下。

理论上是可以用公钥加密,私钥解密,或者是私钥加密,公钥解密。

我的理解是:A向B请求数据:A把自己的信息用私钥签名,并且把自己的公钥传送给B,

B受到A的数据:B将A的公钥取出,并且用A的公钥确认签名,

B向A发送数据:B将自己的数据用A公钥加密,再将自己的公钥暴露给A,并且在用自己的私钥将部分数据签名,(向A确认这是B发送的数据)

A受到B的数据:A用自己的私钥对B发送的数据进行解密,并且用B的公钥进行对B的签名进行验证,以确保这是B发送的数据,(A保存B的公钥)

A向B发送数据:A将自己的数据用B的公钥进行加密,然后发送给B。

整个过程就建立了。

2、ios的签名方法

1)可以用系统提供的API

SecKeyEncrypt:使用公钥对数据加密(公钥)

SecKeyDecrypt:使用私钥对数据加密(私钥)

SecKeyRawVerify:使用公钥对数据签名和验证,验证数据的合法性

SecKeyRawSign:使用私钥对数据形成摘要,并对摘要进行签名

(经多方面确认iOS的 API 只提供这些类方法,因此不可以用公钥对数据解密,私钥对数据加密,,Android是支持的)。

2)可以用第三方的openssl库,(这个就不多说了,这个是可以实现,公私钥交换加密解密的)。

时间: 2024-11-26 08:46:20

ios RSA加密解密一些相关问题的相关文章

iOS RSA加密解密及签名验证

1.首先要下载openssl,这个不用说,直接官网下载或者用brew install openssl下载 2.终端生成私钥密钥 2.1生成私钥 openssl genrsa -out rsa_private_key.pem 1024 2.2生成密钥 openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem 2.3将RSA私钥转换为pkcs8 格式 openssl pkcs8 -topk8 -inform PEM -in

iOS常用加密之RSA加密解密

前言: iOS常用的加密有很多种,前两天在工作中遇到了RSA加密,现在把代吗分享出来. RSA基本原理 RSA使用"秘匙对"对数据进行加密解密.在加密解密数据前,需要先生成公钥(public key)和私钥(private key). 公钥(public key): 用于加密数据. 用于公开, 一般存放在数据提供方, 例如iOS客户端. 私钥(private key): 用于解密数据. 必须保密, 私钥泄露会造成安全问题 第一步:公钥.私钥的生成 iOS开发者可直接在Mac终端生成,命

iOS rsa加密与解密

转自 --响铃  IOS rsa加密与解密 ras加密需要两组秘钥,一组公共秘钥,一组私有秘钥. 生成命令: openssl req -x509 -out public_key.der -outform der -new -newkey rsa:2048 -keyout private_key.pem public_key.der为公共秘钥文件,private_key.pem为私有秘钥文件. 生成ios可引用的私有秘钥文件.pfx: 1. OpenSSL rsa -in private_key.

C#中RSA加密解密和签名与验证的实现

RSA加密算法是一种非对称加密算法.在公钥加密标准和电子商业中RSA被广泛使用.RSA是1977年由罗纳德•李维斯特(Ron Rivest).阿迪•萨莫尔(Adi Shamir)和伦纳德•阿德曼(Leonard Adleman)一起提出的.当时他们三人都在麻省理工学院工作.RSA就是他们三人姓氏开头字母拼在一起组成的..Net的推出,我们能够利用.Net Framework中的类提供的加密服务来保证数据安全.目前应用较为广泛的加密方法是使用RSA算法进行加密.在.Net Framework中与R

使用polarssl进行RSA加密解密

RSA算法的原理就不提了,网上有很多介绍的文章,因为项目中使用RSA加密,所以需要找一个RSA加密的算法,之前尝试过使用Crypto++库,无奈Crypto++其中使用了大量的模版,各种继承,看着头大,github上一些个人代码又不敢使用,最后选用了polarssl内的RSA算法,本文主要讲解VS2010如何使用polarssl内的RSA模块来进行RSA加密解密,方便自己和大家以后使用. 下载和编译 polarssl被ARM 公司收购,并改名为 mbed TLS,可以从其官网下载,或者从这里下载

RSA加密解密

rsa加密解密: openssl_pkey_get_private 系列函数,windows下需要加载 extension=php_openssl.dll;linux下extension=openssl.so. 下载开源RSA密钥生成工具openssl(通常Linux系统都自带该程序),解压缩至独立的文件夹,进入其中的bin目录,执行以下命令: openssl genrsa -out rsa_private_key.pem 1024 openssl pkcs8 -topk8 -inform PE

JAVA实现RSA加密解密 非对称算法

首先RSA是一个非对称的加密算法,所以在使用该算法加密解密之前,必须先行生成密钥对,包括公钥和私钥 JDK中提供了生成密钥对的类KeyPairGenerator,实例如下: public static Map<String, Object> genKeyPair() throws Exception { // 获取公钥私钥密钥对的生成器 KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); // 初始化确定密

RSA加密解密与签名验证

关于RSACryption帮助类定义见RSACryption 一.加密与解密 //定义明文和密文变量 string plaintext = "天道酬勤,厚德载物!"; string ciphertext = ""; //产生密钥 string prikey = "", pubkey = ""; rsa.RSAKey(out prikey, out pubkey); //加密解密过程 ciphertext = rsa.RSAEn

C#自定义RSA加密解密及RSA签名和验证类实例

本文实例讲述了C#自定义RSA加密解密及RSA签名和验证类.分享给大家供大家参考.具体分析如下: 这个C#类自定义RSA加密解密及RSA签名和验证,包含了RSA加密.解密及签名所需的相关函数,带有详细的注释说明. using System; using System.Text; using System.Security.Cryptography; namespace DotNet.Utilities { /// <summary> /// RSA加密解密及RSA签名和验证 /// </