安卓加密

2024-01-02

我正在开发一个 Android 应用程序,我需要在其一方面使用加密。我对使用哪种算法(AES、DES、RSA 等)并不关心。我知道Java有一个crypto包,但我根本不熟悉它。有人可以发布一个有关如何执行加密/解密功能的示例吗?


The java AES库有一个缺陷,在适当的情况下,侦听器可以解密发送的数据包。看Padding Oracle 漏洞利用工具与 Apache MyFaces http://www.youtube.com/watch?v=euujmKDxmC4.

话虽这么说,看看这个问题Java 256 位 AES 加密 https://stackoverflow.com/questions/992019/java-256bit-aes-encryption.

Bouncy Castle AES 示例被盗自:http://www.java2s.com/Code/Java/Security/EncryptionanddecryptionwithASECBPKCS7Padding.htm http://www.java2s.com/Code/Java/Security/EncryptionanddecryptionwithAESECBPKCS7Padding.htm

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;

public class MainClass {
  public static void main(String[] args) throws Exception {
    Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());    
    byte[] input = "www.java2s.com".getBytes();
    byte[] keyBytes = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 
                 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 
                 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 
                 0x15, 0x16, 0x17 };

    SecretKeySpec key = new SecretKeySpec(keyBytes, "AES");

    Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding", "BC");

    System.out.println(new String(input));

    // encryption pass
    cipher.init(Cipher.ENCRYPT_MODE, key);

    byte[] cipherText = new byte[cipher.getOutputSize(input.length)];
    int ctLength = cipher.update(input, 0, input.length, cipherText, 0);
    ctLength += cipher.doFinal(cipherText, ctLength);
    System.out.println(new String(cipherText));
    System.out.println(ctLength);

    // decryption pass
    cipher.init(Cipher.DECRYPT_MODE, key);
    byte[] plainText = new byte[cipher.getOutputSize(ctLength)];
    int ptLength = cipher.update(cipherText, 0, ctLength, plainText, 0);
    ptLength += cipher.doFinal(plainText, ptLength);
    System.out.println(new String(plainText));
    System.out.println(ptLength);
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安卓加密 的相关文章

  • Android 手机作为 GSM 调制解调器在 PC 上发送/接收短信?

    是否可以将 Android 移动设备用作 PC 上的 GSM 调制解调器 我正在 net下开发应用程序来发送 接收短信等 现在我想通过 USB 将我的 Android 设备连接到我的 PC 并将其用作 GSM 调制解调器来与其通信 这里是参
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • 如何在用户输入数据后重新运行java代码

    嘿 我有一个基本的java 应用程序 显示人们是成年人还是青少年等 我从java开始 在用户输入年龄和字符串后我找不到如何制作它它们被归类为 我希望它重新运行整个过程 以便其他人可以尝试 的节目 我一直在考虑做一个循环 但这对我来说没有用
  • 如何对不同的参数类型使用相同的java方法?

    我的问题 我有 2 个已定义的记录 创建对象请求 更新对象请求 必须通过实用方法进行验证 由于这两个对象具有相同的字段 因此可以对这两种类型应用相同的验证方法 现在我只是使用两种方法进行重载 但它很冗长 public record Crea
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 尝试将 Web 服务部署到 TomEE 时出现“找不到...的 appInfo”

    我有一个非常简单的项目 用于培训目的 它是一个 RESTful Web 服务 我使用 js css 和 html 创建了一个客户端 我正在尝试将该服务部署到 TomEE 这是我尝试部署时遇到的错误 我在这里做错了什么 刚刚遇到这个问题 我曾
  • Mipmap 与可绘制文件夹[重复]

    这个问题在这里已经有答案了 我正在使用 Android Studio 1 1 Preview 1 我注意到 当我创建一个新项目时 我得到以下层次结构 不同 DPI 的 Mipmap 文件夹 不再有不同 DPI 的可绘制文件夹 我应该将所有资
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • Android Studio 缓慢的增量构建

    我已经完成了许多步骤来完善我们的构建系统 those https stackoverflow com questions 16775197 building and running app via gradle and android st
  • 在命令行上卸载 Android SDK 的选定部分

    这与 卸载旧的 Android SDK 版本 https stackoverflow com questions 15182377 uninstall old android sdk versions 除非我想在无头 Linux CI 服务
  • 没有用于警告的设置器/字段 Firebase 数据库检索数据填充列表视图

    我只是想将 Firebase 数据库中的数据填充到我的列表视图中 日志显示正在检索数据 但适配器不会将值设置为列表中单个列表项中的文本 它只说 没有二传手 场地插入值 这让我觉得我的设置器没有正确制作 但 Android Studio 自动
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后
  • 我的应用程序中的后退按钮出现问题[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想在手机关闭时清除共享首选项值 你
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • 如何在 SQL Server 中选择连续重复项

    我想从 SQL Server 表中选择重复的条目 但前提是 id 是连续的 我一直在努力扭转这个答案 https stackoverflow com a 3298645 1778169满足我的需要 但我无法让它工作 上面的答案是针对Orac
  • AudioKit - 如何从麦克风获取实时 floatChannelData?

    我是 Audiokit 的新手 我正在尝试对来自麦克风的输入音频进行一些实时数字信号处理 我知道我想要的数据在AKAudioFile的FloatChannelData中 但是如果我想实时获取这个数据怎么办 我目前正在使用 AKMicroph
  • 通过门户从 Azure Cosmos DB 删除所有/多个文档

    是否可以通过 azure 门户 Azure cosmos SQL 查询或 power shell 脚本删除集合中的所有 多个可用文档 根据我的经验 删除所有文档的最快方法是将容器上的 生存时间 设置为 1 秒 这将删除所有文档 但请注意 此
  • 验证 CSS 选择器

    有没有办法以编程方式检查 javascript jquery 选择器的有效性 like class还好但是 class is not 以 JavaScript 或任何后端语言编程 除了通过 jQuery 源代码 所以在伪代码中 def se
  • Maven2 和 Swing 项目:构建并运行 swing 应用程序

    我试图找到有关如何使用 Maven 构建和运行 swing 应用程序的信息 但找不到任何有用的信息 maven 文档一团糟 有人可以指出我相关的文档吗 有人在 Swing 开发中使用 Maven 吗 我猜您想从 Maven 命令运行您的应用
  • 控制 Facebook iFrame 应用程序父框架的滚动位置

    我已经有一个 Facebook iFrame 应用程序愉快地启动并运行 但我意识到由于跨域问题 我没有办法处理父框架的滚动位置 如果用户在页面上点击太远 我无法将它们弹出到顶部 有没有人有幸使用 Facebook JS 库或其他 JavaS
  • 如何更改内容安全策略指令以允许 addThis 小部件?

    我正在制作一个使用 webpack 的网站 我正要启动它并且我想穿上addThis分享小部件 我正在添加addThis代码在index html按照建议关闭正文标签之前addThis 像这样 这会在 chrome inspect 控制台中生
  • 如何以编程方式为 WCF 服务设置单个端点

    我试图允许用户配置 WCF 服务 包括该服务侦听的 IP 和端口号 用户有一个单独的配置应用程序 允许设置这些值 但我遇到的问题是 app config 必须定义一个端点才能创建新的 ServiceHost 条目 但我的端点正在被在单独的配
  • 在负载均衡器后面运行 daphne 的多个实例:django-channels

    我在用django channels to add HTTP2 WebSocket支持我的申请 我找不到很多关于如何扩展通道的文档 下面是我的nginx负载平衡多个实例的配置daphne运行在同一台机器但不同的端口上 这是正确的方法吗 up
  • 有没有办法创建私人频道的 SharePoint 网站?

    目前 我们在使用 teams 图形 API 端点创建的团队上创建私有频道时遇到问题 从 Graph API 添加专用通道时 不会配置与该通道关联的 SharePoint 网站 用户需要访问 MSTeams 客户端中的 文件 选项卡才能创建站
  • 定义常量变量的最佳方法是什么 python 3 [重复]

    这个问题在这里已经有答案了 我正在用 python 编写一个程序 其中包含许多常量变量 我想创建一个文件来保存所有这些变量 例如 h文件输入C其中包含许多 define 我尝试使用配置解析器 https docs python org 3
  • 从 XElement 中删除属性

    我正在尝试从 xml 文档中删除一些属性 这是我尝试过的 private void RemoveEmptyNamespace XElement element foreach XElement el in element Elements
  • 为什么 to_json 在 Rails 4 中自动转义 unicode?

    Rails 3 a gt br to json gt a br Rails 4 a gt br to json gt a u003Cbr u003E WHY 它似乎导致了错误 Encoding UndefinedConversionErro
  • 在 Polars 中轻松将字符串列转换为 pl.datetime

    考虑一个带有一列的 Polars 数据框str表示日期格式的类型 27 July 2020 我想将此列转换为polars datetime类型 与Python标准不同datetime 以下代码 使用标准datetime格式有效 但 Pola
  • 为什么在将控制台窗口设置为 WPF 应用程序的父级后,我无法与它交互?

    与我相关的先前的问题 https stackoverflow com questions 54811209 is it possible to create a console window as created by allocconso
  • C# 内部 VS VBNET Friend

    对于这个问题 C 中的朋友相当于什么 https stackoverflow com questions 204739 what is the c equivalent of friend 我个人会回答 内部 就像 Ja 在答案中所做的那样
  • native-mt 和普通 kotlin 协程库有什么区别?

    当我们使用协程时 我们可以使用普通的 kotlin 协程 也可以使用native mt版本 i e implementation org jetbrains kotlinx kotlinx coroutines core 1 5 0 or
  • 如何在 Tkinter 中更改框架的背景?

    我一直在创建一个Email使用 Python 3 3 中的 Tkinter 进行程序 在各个网站上 我看到框架小部件可以使用以下命令获得不同的背景Frame config background color 但是 当我在框架中使用它时 会出现
  • 为什么动态数组必须以几何方式增加其容量才能获得 O(1) 摊销推回时间复杂度?

    我了解到动态数组 例如std vector 当其容量达到时 其容量加倍 使push back操作 O 1 摊销时间 然而 为什么首先需要这样做呢 没有为末尾的一个元素分配空间vector并复制新元素已经O 1 了 如果您想在数组末尾分配空间
  • 安卓加密

    我正在开发一个 Android 应用程序 我需要在其一方面使用加密 我对使用哪种算法 AES DES RSA 等 并不关心 我知道Java有一个crypto包 但我根本不熟悉它 有人可以发布一个有关如何执行加密 解密功能的示例吗 The j