尝试使用AES128算法加密样本数据,在

Android和iOS中使用CBC和PKCS7填充,但结果不同:(

Android代码:

private static final byte[] KEY = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10};

int srcBuffSiz = 1024;

byte[] srcBuff = new byte[srcBuffSiz];

Arrays.fill(srcBuff, (byte)0x01);

SecretKeySpec skeySpec = new SecretKeySpec(KEY, "AES");

Cipher ecipher = Cipher.getInstance("AES/CBC/PKCS7Padding");

ecipher.init(Cipher.ENCRYPT_MODE, skeySpec);

byte[] dstBuff = ecipher.doFinal(srcBuff);

int bytesEncrypted = dstBuff.length;

iOS代码:

// Source buffer

size_t srcBuffSiz = 1024;

unsigned char* srcBuff = new unsigned char[srcBuffSiz];

memset(srcBuff, 0x01, srcBuffSiz);

// Destination buffer

size_t dstBuffSiz = srcBuffSiz + 128;

unsigned char* dstBuff = new unsigned char[dstBuffSiz];

memset(dstBuff, 0x00, dstBuffSiz);

unsigned char keyPtr[kCCKeySizeAES128] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10};

size_t bytesEncrypted = 0;

CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, kCCAlgorithmAES128, kCCOptionPKCS7Padding,

keyPtr, kCCKeySizeAES128,

NULL /* initialization vector (optional) */,

srcBuff, srcBuffSiz, /* input */

dstBuff, dstBuffSiz, /* output */

&bytesEncrypted);

因此,在这两种情况下,我都试图使用预定义的样本密钥加密样本1024字节缓冲区(通常填充0x01值).

iOS中第一个和最后6个字节的加密缓冲区:

ED CC 64 27 A8 99 ... 0C 44 9F EC 34 FC

Android中第一个和最后一个6字节的加密缓冲区:

AE 65 A9 F7 7F 0E ... 1F BD AE 8B 85 ED

任何的想法?

如果我将Cipher.getInstance(“AES / CBC / PKCS7Padding”)替换为Cipher.getInstance(“AES”),那么加密缓冲区的前几个字节将是相同的,但是从第17个字节开始……

iOS版:

ED CC 64 27 A8 99 DA 83 D5 4A B0 03 0F E7 DD A7 35 F2 50 5C 49 47 CC 3B 2F AB D1 61 05

安卓:

ED CC 64 27 A8 99 DA 83 D5 4A B0 03 0F E7 DD A7 ED CC 64 27 A8 99 DA 83 D5 4A B0 03 0F

aes c android ios,AES加密在iOS和Android中产生不同的结果相关推荐

  1. 【iOS app加密】iOS app之游戏加密防破解

    [iOS app加密]iOS app之游戏加密防破解.iOS app游戏类应用有一个很泛滥但被视为鸡肋的问题,那就是iOS app被破解的问题.因为国内大多数游戏靠内购和广告盈利,游戏安装包也只是在早 ...

  2. android程序如何加密软件,如何在Android手机上隐藏(加密)文件夹(软件)

    今天,我将向您展示如何在Android手机上隐藏(加密)文件夹(软件)以及如何在Android手机上隐藏(加密)文件夹(软件),以便您轻松解决问题. 在使用Android手机的过程中,出于各种原因,我 ...

  3. android 中如何用aes算法加密解密zip文件,android中AES加解密的使用方法

    今天在android项目中使用AES对数据进行加解密,遇到了很多问题,网上也找了很多资料,也不行.不过最后还是让我给搞出来了,这里把这个记录下来,不要让别人走我的弯路,因为网上绝大多数的例子都是行不通 ...

  4. python混淆加密ios代码_用AES(MODE_CBC/NoPadding)解密用Python加密的iOS文件

    我从Python中的服务器接收到一个以这种方式加密的文件:import os from Crypto.Cipher import AES from Crypto import Random def p ...

  5. Android采用AES+RSA的加密机制对http请求进行加密

    前言 最近维护公司APP应用的登录模块,由于测试人员用Fiddler抓包工具抓取到了公司关于登录时候的明文登录信息.虽然使用的是HTTPS的方式进行http请求的,但还是被Fiddler抓到了明文内容 ...

  6. Ubuntu环境下,使用clion编译器,使用开源opensll的对称AES算法对于文件进行加密,C++代码

    前提准备条件 需要安装openssl 需要安装openssl-dev 需要配置CMakeLists.txt文件 集体内容可以参考我提供的相关参考链接 AES_file.h #include <o ...

  7. ios java 通信_AES加密解密 -- iOS、Java之间的互相通信

    简介:AES是一种对称加密方式,旨在取代DES成为广泛使用的标准.虽然语言不同,但是AES的算法是相同的. 关于AES的各种参数请参考下面文章(一定要认真阅读,不然就没办法按照自己的想法进行加密解密) ...

  8. 谈谈iOS 的加密技术

    ios常用加密方式 AES加密 aes(The Advanced Encryption Standard)是美国国家标准与技术研究所用于加密电子数据的规范.它被预期能成为人们公认的加密包括金融.电信和 ...

  9. android ios 对比 组件_iOS系统和Android系统全面对比

    摘  要 iOS和Android占据当今智能移动终端市场的半壁江山,结合<嵌入式系统>学习的软硬件协同开发等理念,从硬件.软件.用户三个角度进行iOS与Android的比较.其中,硬件选择 ...

  10. android xml转换成svg,如何将Android xml布局转换为png / svg以在iOS版本中使用

    我这里有一个 Android布局xml文件: android:id="@+id/locationMarker" android:layout_width="wrap_co ...

最新文章

  1. 点云配准的端到端深度神经网络:ICCV2019论文解读
  2. ML基石_56_TheoryOfGeneralization
  3. c语言与硬件连接案例,实际LED硬件连接
  4. python 类装饰器和函数装饰器区别_python进阶之装饰器之4在类中定义装饰器,将装饰器定义为类,两者的区别与联系...
  5. 二维数组:随机生产,遍历,判断两个数组一维二维长度,和内容是否一致
  6. 《C++ Primer 5th》笔记(2 / 19):变量和基本类型
  7. java 泛型 `<E extends Enum<E>>`
  8. 非刚性配准(Non-rigid ICP )
  9. C++ 对象的内存布局【转】
  10. html根据域名跳转不同页面,根据邮箱的域名跳转到相应的登录页面的代码
  11. Redis之单机数据库的实现
  12. 通信技术发展的自然辩证法
  13. 长江下游水位退至23年来最低点
  14. linux各种桌面系统图片,四大Linux图形界面赏析:KDE、Gnome、Xfce、LXDE
  15. 全息投影是计算机技术吗,全息投影技术在使用过程中要注意哪些问题?
  16. 链游界巅峰巨作‬‬Hegemony Ⅱ 仿真元宇宙游戏王国震撼问世
  17. java注解约束参数为固定值_Java学习 使用注解将参数的值限定
  18. 感动,我终于学会了用Java对数组求和
  19. chrome浏览器当鼠标碰到超链接的时候会窗口会抖动
  20. Robocup2D入门笔记(1)——概述

热门文章

  1. python字典格式_python – 格式self,这是一个字典
  2. 第5章 Python 数字图像处理(DIP) - 图像复原与重建13 - 空间滤波 - 线性位置不变退化 - 退化函数估计、运动模糊函数
  3. Linux软件安装——安装软件的命令
  4. filter-mutate过滤插件
  5. mysql那些事(6) WHERE条件 字符串的引号
  6. 浅谈Junit4和TestNG中的参数化测试
  7. JIRA-6.3.6安装与破解
  8. 转: vim 的编辑格式设置
  9. Android事件总线
  10. Spring Bean Scope 有状态的Bean 无状态的Bean