相关疑难解决方法(0)

AES在iOS(Obj-C)和Android(Java)中获得不同的结果

我是这种加密的完全新手,但我有一个Java应用程序和iOS,我希望他们都能够将文本转换成相同的结果.我用AES.我找到了这些代码,当然稍作修改,但它们会返回不同的结果

iOS代码:

- (NSData *)AESEncryptionWithKey:(NSString *)key {    
    unsigned char keyPtr[kCCKeySizeAES128] = { 'T', 'h', 'e', 'B', 'e', 's', 't', 'S', 'e', 'c', 'r','e', 't', 'K', 'e', 'y' };
    size_t bufferSize = 16;
    void *buffer = malloc(bufferSize);
    size_t numBytesEncrypted = 0;
    const char iv2[16] = {  65, 1, 2, 23, 4, 5, 6, 7, 32, 21, 10, 11, 12, 13, 84, 45 };
    CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt,
                                          kCCAlgorithmAES128,
                                          kCCOptionECBMode | kCCOptionPKCS7Padding,,
                                          keyPtr,
                                          kCCKeySizeAES128,
                                          iv2,
                                          @"kayvan",
                                          6,
                                          dataInLength,
                                          buffer,
                                          bufferSize,
                                          &numBytesEncrypted);


    if …
Run Code Online (Sandbox Code Playgroud)

java android aes ios

4
推荐指数
2
解决办法
1万
查看次数

为什么同一个字符串的AES加密密码具有相同的密钥总是不同?

我有一个名为plain.txt的文件.在文件里面我有:

Hello Hello Hello Hello
Run Code Online (Sandbox Code Playgroud)

我正在使用此命令加密它:

openssl enc -aes-128-cbc -salt -k "Hello" -in plain.txt -out encrypted.bin
Run Code Online (Sandbox Code Playgroud)

然后我打印加密值,如下所示:

buff = open("encrypted.bin")
cipher = buff.read()
buff.close()
print b64encode(cipher)
Run Code Online (Sandbox Code Playgroud)

但它始终是不同的价值.密码不应该总是一样吗?我使用相同的文件和相同的密码来加密它.这些是我的终端输出:

Richard-Knops-MacBook-Pro:python_test richardknop$ openssl enc -aes-128-cbc -salt -k "Hello" -in plain.txt -out encrypted.bin
Richard-Knops-MacBook-Pro:python_test richardknop$ python test.py U2FsdGVkX1+AmoQiIkYAxIYanLr/kbjMfEJPPLfeE/wtyxScvAKzb7K38ZxoI097
Richard-Knops-MacBook-Pro:python_test richardknop$ openssl enc -aes-128-cbc -salt -k "Hello" -in plain.txt -out encrypted.bin
Richard-Knops-MacBook-Pro:python_test richardknop$ python test.py U2FsdGVkX19vPD+OoiK7iSgYJiPMxuKGNWWrLlfBS0c3yCJkuv7QIBGEo2Q86UsV
Richard-Knops-MacBook-Pro:python_test richardknop$ openssl enc -aes-128-cbc -salt -k "Hello" -in plain.txt -out encrypted.bin
Richard-Knops-MacBook-Pro:python_test richardknop$ python test.py U2FsdGVkX1+3I8EC7u3lrcVPyD/JV12NAecWvTPXGga0Nh2cwqLAtGCDhLK6MI9g
Richard-Knops-MacBook-Pro:python_test richardknop$ 
Run Code Online (Sandbox Code Playgroud)

python encryption openssl aes

1
推荐指数
1
解决办法
3433
查看次数

标签 统计

aes ×2

android ×1

encryption ×1

ios ×1

java ×1

openssl ×1

python ×1