Tag: encryption

3DESencryption导致PHP,JAVA和.NET从3DES iOS产生不同的结果

我正在尝试在iOS 8中升级当前的应用程序,以适应Redsys / Sermpa的新encryptionSHA256。 但是我在数据encryption方面有问题。 在PHP,Java和.NET中我得到了一个与iOS完全不同的结果。 我认为这个问题一定是在3DES IOS CCCrypt中。 PHP,JAVA和.NET代码是一个库,我不能改变这个库。 我必须在iOS中做出encryption的结果,在PHP,JAVA和.NET中对结果进行encryption。 库Java代码: String secretCodeString = "Mk9m98IfEblmPfrpsawt7BmxObt98Jev"; String Ds_Merchant_Order = "1442772645"; String Ds_MerchantParameters = "eyJEU19NRVJDSEFOVF9BTU9VTlQiOiIxNDUiLCJEU19NRVJDSEFOVF9PUkRFUiI6IjE0NDI3NzI2NDUiLCJEU19NRVJDSEFOVF9NRVJDSEFOVENPREUiOiI5OTkwMDg4ODEiLCJEU19NRVJDSEFOVF9DVVJSRU5DWSI6Ijk3OCIsIkRTX01FUkNIQU5UX1RSQU5TQUNUSU9OVFlQRSI6IjAiLCJEU19NRVJDSEFOVF9URVJNSU5BTCI6Ijg3MSIsIkRTX01FUkNIQU5UX01FUkNIQU5UVVJMIjoiaHR0cHM6XC9cL2VqZW1wbG9cL2VqZW1wbG9fVVJMX05vdGlmLnBocCIsIkRTX01FUkNIQU5UX1VSTE9LIjoiaHR0cHM6XC9cL2VqZW1wbG9cL2VqZW1wbG9fVVJMX09LX0tPLnBocCIsIkRTX01FUkNIQU5UX1VSTEtPIjoiaHR0cHM6XC9cL2VqZW1wbG9cL2VqZW1wbG9fVVJMX09LX0tPLnBocCJ9"; byte [] secretCode = decodeB64(secretCodeString.getBytes("UTF-8")); String secretKc = toHexadecimal(secretCode, secretCode.length); byte [] Ds_Merchant_Order_encrypt3DES = encrypt_3DES(secretKc, Ds_Merchant_Order); byte [] hash = mac256(Ds_MerchantParameters, Ds_Merchant_Order_encrypt3DES); byte [] res = encodeB64UrlSafe(hash); String Ds_Signature = new […]

我怎样才能解密在iOS的XML文件与AES / CBC / PKCS5Padding标准,在Android的文件已被解密,所有的关键像盐,IV

private static Cipher getCipher(int mode) throws Exception { Cipher c = Cipher.getInstance("AES/CBC/PKCS5Padding"); //a random Init. Vector. just for testing byte[] iv = "e675f725e675f725".getBytes("UTF-8"); c.init(mode, generateKey(), new IvParameterSpec(iv)); return c; } private static String Decrypt(String encrypted) throws Exception { byte[] decodedValue = new Base64().decode(encrypted.getBytes("UTF-8")); // new BASE64Decoder().decodeBuffer(encrypted); Cipher c = getCipher(Cipher.DECRYPT_MODE); byte[] decValue = c.doFinal(decodedValue); return […]

大于公钥的RSAencryption文件

用下面的方法,我可以成功地encryption一个不大于256Bit的NSData对象: OSStatus SecCertificateCopyPublicKey ( SecCertificateRef certificate, SecKeyRef *key ); – (NSData *)encryptWithData:(NSData *)content { OSStatus result = -1; NSData *plainTextData = content;//[@"123456789" dataUsingEncoding:NSUTF8StringEncoding]; size_t plainTextLength = [plainTextData length]; SecTrustRef trustRef; SecTrustResultType trustResult; SecPolicyRef policy = SecPolicyCreateBasicX509(); NSData *certificateData = [self getPublicKey]; SecCertificateRef cert = NULL; if( [certificateData length] ) { cert = SecCertificateCreateWithData(NULL, (__bridge CFDataRef)certificateData); […]

如何在iOS和C#.NET之间对AES128进行encryption

我尝试使用iPhone上的AES128(CBC模式)进行encryption,然后使用BASE64发送到Windwos服务器上的ASPX(GET参数)以及Windwos服务器上的解密(C#.NET) iPhone应用程序和OpenSSL命令提供的ASPX有相同的KEY和IV。 问题是不能在ASPX上解密。 这是我的iOS来源 – (NSData *)AES128Operation:(CCOperation)operation key:(NSString *)key iv:(NSString *)iv { char keyPtr[kCCKeySizeAES128 + 1]; memset(keyPtr, 0, sizeof(keyPtr)); [key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding]; char ivPtr[kCCBlockSizeAES128 + 1]; memset(ivPtr, 0, sizeof(ivPtr)); [iv getCString:ivPtr maxLength:sizeof(ivPtr) encoding:NSUTF8StringEncoding]; NSUInteger dataLength = [self length]; size_t bufferSize = dataLength + kCCBlockSizeAES128; void *buffer = malloc(bufferSize); size_t numBytesCrypted = 0; CCCryptorStatus cryptStatus […]

陷入困境为Bluemix推送创build.p12推送证书文件

参考这篇文章: 发送推送后设备未注册 ,我有同样的问题 – 我的iPhone设备发送推送通知后,未注册。 我尝试了这个post的build议,我用我的证书做了这个: -ios_development.cer – Development profile downloaded from Apple -Certificates.p12 – APNS .p12 exported from the keychain -openssl x509 -in ios_development.cer -inform DER -out apns.pem -outform PEM -openssl pkcs12 -nocerts -in Certificates.p12 -out Certificates.pem -openssl pkcs12 -export -inkey Certificates.pem -in apns.pem -out bluemixPush_dev.p12 我得到这个错误: unable to load private key 97354:error:06065064:digital envelope […]

核心数据在后台encryption

这个问题不同于这里的问题,因为应用程序主要在后台。 我们的应用程序要求我们保持数据存储encryption。 我们目前的实现是使用SQLite使用SQLCipher。 计划将转移到核心数据。 我正在寻找一种解决scheme来保持数据encryption,同时仍然可以在后台访问,并且不会限制查询 – NSPredicates和迁移(模式更改)。 以下是我一直在研究的所有选项: NSFileProtectionComplete – 不允许在后台访问文件 encrypted-core-data – 这个库似乎保持最新。 但是,在查看已知问题列表后,我已经有了关于在生产中使用它的第二个想法。 有没有人最近使用这个? NSIncrementalStore – 这是苹果工程师build议我们遵循的方式。 encryption核心数据正在使用这种方法。 核心数据中可转换的属性 – 这个解决scheme是否可扩展用于更大的数据集? 有没有人有build议,符合所有的标准,可用于生产应用程序?

CCCryptor的使用是否需要法国import报关证书?

想要从应用程序中实施encryption的人员获得一些帮助,并已将其传递到应用程序商店。 我们的应用程序使用CCCryptor提供的https/SSL和AES256encryption以及keychain 。 根据这个关于encryption的消息: 如果您打算在法国发布您的应用,则符合以下条件的应用必须符合法国encryption法规/法规。 此要求适用于使用,访问,实施或合并的应用程序:(a)尚未由诸如IEEE,IETF,ISO,ITU,ETSI,3GPP,TIA等国际标准组织进行标准化的任何encryptionalgorithm或未另行公布; 或(b)标准(如AES,DES,3DES,RSA)encryptionalgorithm代替或除了访问或使用iOS和/或Mac OS X中的encryption外,苹果将要求您上传您的当您将您的应用程序提交到App Store时获得法国的批准声明。 相关的法国encryption法规可在以下urlfind: http : //www.legifrance.gouv.fr/affichTexte.do? cidTexte = LEGITEXT000005789847 & dateTexte =# LEGIARTI000006421577 http://www.ssi.gouv.fr/archive/fr/reglementation/regl_crypto .html http://www.ssi.gouv.fr/site_article195.html http://www.ssi.gouv.fr/site_article197.html 我有疑问就行了: 除了访问或使用iOS中的encryption之外,还可以使用标准(例如,AES,DES,3DES,RSA)encryptionalgorithm 从我研究的, CCCryptor是一个由苹果公司开发的开源类,所以它应该已经是iOS中的encryption,但是根据这个相关的stackoverflowpost谁也使用CCCryptor ,有人回答被要求申请法国import声明。 那么对于已经通过这个问题的小伙子,我们是否需要申请法国的import申报?

目标C中的RSA实现

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

支持GCM的AES 256不可能在iOS?

目前AES 256 is CBC支持的encryption模式AES 256 is CBC 。 但是我想使用GCM模式的AES 256 encryption和PKCS5Padding / PKCS7Padding 。 请让我知道如何做到这一点?

使用des cbc模式encryption/解密stringobj-c

嗨,大家好,我在obj-c世界很新,我想知道如何encryptiondes中的string? 我已经试过search,但找不到任何示例代码,可以帮助我,我意识到有一个类commonCrypt做我想做的,但我不知道如何使用它 我的代码 NSString* key = @"abc43HU0"; NSString *token = @"hellohello"; const void *vplainText; size_t plainTextBufferSize; plainTextBufferSize = [token length]; vplainText = (const void *) [token UTF8String]; CCCryptorStatus ccStatus; uint8_t *bufferPtr = NULL; size_t bufferPtrSize = 0; size_t *movedBytes = NULL; bufferPtrSize = (plainTextBufferSize + kCCBlockSize3DES) & ~(kCCBlockSize3DES – 1); bufferPtr = malloc( bufferPtrSize * […]