Tag: rsa

如何在iOS中使用RSA公钥解密密码

我有一个像标题所示的问题。 在应用程序中,首先我生成一个随机数并将其发布到server.Server使用自己的RSA私钥来encryption随机数并将encryption数字返回给我。我有服务器的RSA公钥保留在我的本地作为Base64string。问题是如何使用服务器的RSA公钥(我有一个Base64 string.no PEM或DERtypes的文件)来解密从服务器的密码。 需要你的帮助!

使用RSA只使用模数和指数在iOS中encryptionstring

我知道这里有很多类似的问题和答案,但我已经search,找不到适合我的一个。 我有一个服务,我想在IOS(6)中使用,由我无法控制的第三方提供。 为了使用服务进行身份validation,我需要将我的用户凭据作为RSAencryptionstring发送,并使用RSA公钥进行encryption。 他们为我提供了一个XML格式的文件 <BitStrength>1024</BitStrength> <RSAKeyValue> <Modulus>xxxxxxxxxxxxxxxxxxxxx</Modulus> <Exponent>xxxx</Exponent> </RSAKeyValue> 我需要做什么才能encryptionstring? 我是来自DOTNET的背景,所以到目前为止,我的大部分复杂性都被模糊了。 我已经尝试过这样的例子: Objective-C中的RSA实现,但没有办法从我拥有的对象中构build对象,他们似乎需要一个证书 我曾尝试使用此工具将其转换为PEM文件,但代码将不会生成证书对象。 https://superdry.apphb.com/tools/online-rsa-key-converter 在此先感谢您的帮助。 ****编辑****这是我使用提供的示例创build的方法的一部分,它运行没有错误,但我不能解码输出: SStatus status = noErr; size_t cipherBufferSize; uint8_t *cipherBuffer; // [cipherBufferSize] size_t dataSize = [plainTextString lengthOfBytesUsingEncoding:NSUTF8StringEncoding]; const uint8_t* textData = [[plainTextString dataUsingEncoding:NSUTF8StringEncoding] bytes]; NSAssert(publicKey, @"The public key being referenced by tag must have been stored in the keychain before […]

iOS:可以在应用程序文档目录中存储RSA私钥(用于解密文本)吗?

我希望用户通过文件共享使用他们的RSA私钥存储在我的应用程序的文档目录中。 如果用户可以访问RSA私钥也没问题,但是我不希望其他任何人访问它。 这是一个好主意,如果不是,我怎么能让用户安全地将他/她的RSA私钥存储在我的应用程序中。

目标C中的RSA实现

我在使用RSA Algorithm Objective-C中开发一个简单的应用程序。 我想在服务器/客户端通信上使用它。 我需要在iOS / iPhone的RSAalgorithm实现方面的帮助。 我有encryption和解密的知识。 我想要一个开源库或代码添加到我的项目。 我必须去CommonCryptor.h 。

NSString到SecKeyRef

我正在使用此代码: https : //stackoverflow.com/a/19221754/849616 ,但不是一切都清楚。 我想使用公钥NSString *pubKey = "1111"来encryptionNSString *msg = "0000" NSString *pubKey = "1111" 。 因此,我正在更新常量: static const UInt8 publicKeyIdentifier[] = 1111; // i want to encrypt only, so private key doesn't matter and I'm not posting it here 在函数testAsymmetricEncryptionAndDecryption我已经更新: const char inputString[] = 0000 但结果是错误的。 是publicKeyIdentifier一个正确的地方把我的关键string..? 我应该怎么做,如果我的做法是错误的..?

在iOS中使用X.509 2048位公钥encryption

在我的iOS库中,我有一个包含X.509 RSA 2048位公钥的Base64编码的string。 我想用这个公钥encryption一个string。 任何人都可以提供一些目标C代码参考,提到我需要包括的库? 等效的Java代码如下所示: byte[] keyBytes = Base64.decodeBase64(publicKeyData); // Get Public Key X509EncodedKeySpec rsaPublicKeySpec = new X509EncodedKeySpec(keyBytes); KeyFactory fact = KeyFactory.getInstance("RSA"); PublicKey publicKey = fact.generatePublic(rsaPublicKeySpec); Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); cipher.init(Cipher.ENCRYPT_MODE, pubKey); encryptedData = cipher.doFinal(dataToEncrypt);

如何在Swift中为IOS生成一个RSA非对称密钥对?

我需要一种在Swift中生成RSA非对称密钥对的方法。 我不需要把它存储在钥匙链或任何东西。 我只需要生成一个密钥对,并将两个键都转换为stringvariables。 密钥确实需要与PHP的另一端兼容。 我将使用对称encryption来保护私钥并将其存储在手机中。 我将发送公钥到在PHP中实现的Web服务,Web服务将公钥存储在数据库中。 该公钥将在稍后由Web服务使用,以encryption值为IOS应用程序的一次性密码和其他敏感值。 我将为从IOS应用程序stream向Web服务的小部分数据实现类似的scheme。 我可以在developer.apple.com上看到唯一logging的在Swift中生成密钥对的API声明: func SecKeyGeneratePairAsync(_ parameters: CFDictionary!, _ deliveryQueue: dispatch_queue_t!, _ result: SecKeyGeneratePairBlock!) 我试图找出如何使用这个,但XCode不喜欢下划线,我不知道我实际上应该做什么,或如何使用它。 即使XCode接受它,我不知道如何调用该函数和什么值来传递它,等等,我包括在顶部的“导入安全”,所以这不是问题。 这很荒谬,这应该是如此艰难。 我想要做的就是生成一个不对称的密钥对。 用PHP或者.NET或者Java或者其他语言来做这个是一块蛋糕,但是我找不到任何关于Swift的清晰的文档。 我必须使用这个应用程序的Swift。 我不想使用OpenSSL,因为它已经被弃用了。 我使用Swift是因为我血腥的仇恨目标C. Swift是我最终跳入IOS开发的原因。 我不知道如何将一个Objective C类与Swift集成,如果有的话,我真的宁愿有一个纯Swift解决scheme。 如果没有,我会很感激有关如何整合Objective C解决scheme并使其工作的一些指示。 上面的代码片段是苹果公司提供的唯一函数调用,自然是不完整的,没有意义,不起作用。 请帮助,如果你可以…这将不胜感激。 :) 谢谢 – =卡梅伦

iOS SecItemCopyMatching RSA公钥格式?

我试图从一个已经生成的密钥对(两个SecKeyRef )中提取一个1024位的RSA公钥,以便通过线路发送它。 我所需要的只是一个普通(modulus, exponent)对,它应该占用131个字节(128为模数,3为指数)。 但是,当我作为一个NSData对象获取密钥信息,我得到140位而不是131.下面是一个示例结果: <30818902 818100d7 514f320d eacf48e1 eb64d8f9 4d212f77 10dd3b48 ba38c5a6 ed6ba693 35bb97f5 a53163eb b403727b 91c34fc8 cba51239 3ab04f97 dab37736 0377cdc3 417f68eb 9e351239 47c1f98f f4274e05 0d5ce1e9 e2071d1b 69a7cac4 4e258765 6c249077 dba22ae6 fc55f0cf 834f260a 14ac2e9f 070d17aa 1edd8db1 0cd7fd4c c2f0d302 03010001> 重试密钥生成几次并比较得到的NSData对象,所有密钥保持相同的字节是第一个7: <30818902 818100> 最后三个字节看起来像指数(65537,一个公共值)。 “模数”和指数之间还有两个字节: <0203> 有更多的encryption经验的人可以帮助我确定这是什么编码? DER? 我如何正确解码模数和指数? 我尝试手动剥离模数和指数使用 NSData* modulus = [keyBits subdataWithRange:(NSRange){ […]

如何在ios中用RSA公钥encryption和解密string(纯文本),swift

我想用我的RSA公钥Encrypt一个string(纯文本)。 我有一个public key ,从服务器发送一个String并与我创build一个RSA公钥。 现在我想使用该密钥来Encrypt我的文本与填充PKACS12 。 我怎样才能做到这一点。 我经历了很多堆栈溢出问题,并没有得到任何成功。 这是我如何创buildRSA public key , let serverPublicKey = "Some text with key" let data2 = Data.init(base64Encoded: serverPublicKey) let keyDict:[NSObject:NSObject] = [ kSecAttrKeyType: kSecAttrKeyTypeRSA, kSecAttrKeyClass: kSecAttrKeyClassPublic, kSecAttrKeySizeInBits: NSNumber(value: 2048), kSecReturnPersistentRef: true as NSObject ] let publickeysi = SecKeyCreateWithData(data2! as CFData, keyDict as CFDictionary, nil) 这将成功创build一个RSA public key 。 现在我想用这个密钥来encryption我的另一个Plain […]

从模和指数生成RSA公钥

我正在寻找从Objective-C中的模数和指数生成rsa公钥(pem)。 这个function可以通过以下方式在Java中完成: PublicKey publicKey = KeyFactory.getInstance("RSA").generatePublic(new RSAPublicKeySpec(modulus, exponent)); 虽然我在写这个iOS平台时遇到了一些麻烦。 我知道OpenSSL ,但我找不到一个成功的方法,仍然无法生成此密钥。 也看看SCZ-BasicEncodingRules-iOS,但是这返回一个NSData值,我卡住试图找出如何尝试将其转换为NSString。