Tag: 3des

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 […]

iPhone和服务器上的3DESencryption不同

我有以下代码来encryption我发送到我的服务器的请求。 在服务器上的解码是由.NET完成的,在iPhone上,我正在使用下面的代码安全框架。 – (NSString*) doCipher:(NSString*)plainText:(CCOperation)encryptOrDecrypt { const void *vplainText; size_t plainTextBufferSize; if (encryptOrDecrypt == kCCDecrypt) { NSData *EncryptData = [[NSData alloc] initWithBase64EncodedString:plainText]; plainTextBufferSize = [EncryptData length]; vplainText = [EncryptData bytes]; } else { plainTextBufferSize = [plainText length]; vplainText = (const void *) [plainText UTF8String]; } CCCryptorStatus ccStatus; uint8_t *bufferPtr = NULL; size_t bufferPtrSize = 0; […]

3DES导致Java产生3DES iOS版本的不同结果

我真的很….真的需要帮助……….. -更新- 我需要帮助,因为与iOS 3DESfunction相比,我的javafunction给了我一个不同的结果。 我发布了来自ios和java的代码; 当指定明文为“tutor.1”且MD5键为“spO13 + QLZCRAe93pIXMXLg ==”(MD5,清楚地,两者都相同)时的结果。 JAVA 3DES (简单而简单) public static String encrypt(String plaintext, String enctoken){ if(enctoken == null) enctoken = "sfdjf48mdfdf3054"; String encrypted = null; byte[] plaintextByte = EncodingUtils.getBytes(plaintext,"UTF-8"); byte[] hash = Connessione.md5(enctoken); Log.i("ENCRYPT", "MD5: "+Base64.encodeToString(hash, 0)); try { Cipher cipher = Cipher.getInstance("DESEDE/ECB/PKCS5Padding"); SecretKeySpec myKey = new SecretKeySpec(hash,"DESede"); cipher.init(Cipher.ENCRYPT_MODE, myKey); try […]

使用ECB的iOS 3DES会返回一半正确的数据

使用3DES + ECBalgorithmencryption密码时出现问题。 这里是我使用的代码: class func encryptPassword(pass: String) -> String { let keyString = "123456789012345678901234" let keyData: NSData! = (keyString as NSString).dataUsingEncoding(NSUTF8StringEncoding) as NSData! let keyBytes = UnsafePointer<UInt8>(keyData.bytes) let data: NSData! = (pass as NSString).dataUsingEncoding(NSUTF8StringEncoding) as NSData! let dataLength = UInt(data.length) let dataBytes = UnsafePointer<UInt8>(data.bytes) var cryptData = NSMutableData(length: Int(dataLength) + kCCBlockSize3DES)! var cryptPointer = […]

3desencryption和解密在iOS

我正在进行3DESencryption和解密。 我已经成功完成了encryption。 解密,我使用这个代码,但没有得到确切的结果。 我的encryptionstring是“ CHc3TsfJgYs = ”,键是“ meristem ”。 请告诉我我做错了什么? NSString *token = @"CHc3TsfJgYs="; NSString *key = @"meristem"; 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 ; bufferPtrSize = (plainTextBufferSize + kCCBlockSize3DES) & ~(kCCBlockSize3DES – […]