Java RSA 中字符串中的密钥

2023-11-22

我在我的应用程序中使用 RSA 加密技术。为了存储生成的公钥,我将其转换为字符串,然后将其保存在数据库中。

    Key publicKey=null;
    Key privateKey=null;

    KeyPair keyPair=RsaCrypto.getKeyPairRSA(1024);
    publicKey=keyPair.getPublic();
    privateKey=keyPair.getPrivate();



    String publicK=Base64.encodeToString(publicKey.getEncoded(), Base64.DEFAULT);
    String privateK=Base64.encodeToString(privateKey.getEncoded(), Base64.DEFAULT);

我保存字符串publicK and privateK。 我的问题是,当我想用​​ RSA 加密/解密文本并使用我保存的字符串格式的密钥时,我不知道如何将其转换为Key.

public static String encrypt(Key publicKey, String inputText){
    byte[]encodedBytes=null;
    String encryptedText="";
    try {
        Cipher cipher=Cipher.getInstance("RSA");
        cipher.init(Cipher.ENCRYPT_MODE, publicKey);
        encodedBytes=cipher.doFinal(inputText.getBytes());
    } catch (Exception e) {Log.e("Error", "RSA encryption error");  }

    encryptedText=Base64.encodeToString(encodedBytes, Base64.DEFAULT);
    return encryptedText;
}

你有什么主意吗? 多谢


要将 publicK(String) 转换为公钥,请执行以下操作:

byte[] keyBytes = Base64.decode(publicK.getBytes("utf-8"));
X509EncodedKeySpec spec = new X509EncodedKeySpec(keyBytes);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PublicKey key = keyFactory.generatePublic(spec);

要将 privateK(String) 转换为私钥,请执行以下操作:

byte[] keyBytes = Base64.decode(privateK.getBytes("utf-8"));
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes);
KeyFactory fact = KeyFactory.getInstance("RSA");
PrivateKey priv = fact.generatePrivate(keySpec);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java RSA 中字符串中的密钥 的相关文章

  • Android 将菜单项在操作栏中向左对齐

    我的应用程序中有一个操作栏 它显示我定义的菜单项res menu activity main xml 我的菜单项在操作栏上向右对齐 我希望它们左对齐 我为此找到的唯一解决方案使用了自定义操作栏 如下所示 将菜单项放置在 Honeycomb
  • 如何使用java避免Mysql数据库中的“数据因列被截断”?

    在我的 Java 程序中 Hibernate Bean 类定义一列 例如 TimtableVO java Column name REPEAT DAYS private WeekdayType repeatDays hear Weekday
  • EditText 的高度不会扩展到其父级的高度

    我在滚动视图中放置了编辑文本 高度 match parent并期望它的高度等于滚动视图 但事实并非如此 它的高度就像wrap content这意味着如果 EditText 中没有文本 我必须将光标指向要弹出的软键盘的第一 行 我想要的是我可
  • MAC OS 的 java.awt.Robot 类中出现无头环境错误

    我正在尝试使用 JavaFX 应用程序捕获屏幕截图Robot class 这是我在我的应用程序中使用的代码 Rectangle screenBounds new Rectangle Screen getPrimary getBounds g
  • onTouch 给出奇怪的触摸点 Android

    我正在做的事情非常简单 我以前做过 但现在它没有按我的预期运行 无论如何 让我简要解释一下我正在尝试做什么以及我得到了什么 设想 我有一个RelativeLayout其中一个ImageView已放置 现在我设置touchlistener像这
  • 使用java读取Excel工作表的单列

    我有一张 Excel 表格 我想编写一个方法 该方法将参数作为要读取的列号 并返回一个由该列中的所有数据组成的数组 然后将该列元素放置在 xml 工作表中 我怎样才能编写一个方法来做到这一点 使用 Apache POI 您可以在他们的使用页
  • Apache HttpClient 执行时会在所有 HTTP 5XX 错误上抛出 IOException 吗?

    The Apache HttpClient 文档 http hc apache org httpcomponents client ga httpclient apidocs org apache http client HttpClien
  • 捕获 XSS(跨站脚本)攻击的最佳正则表达式(Java 中)?

    杰夫实际上在净化 HTML http refactormycode com codes 333 sanitize html 但他的示例是用 C 编写的 而我实际上对 Java 版本更感兴趣 有人有更好的 Java 版本吗 他的示例是否足以直
  • 使用 Mockitos 传递参数化输入

    我正在使用 Mockito 进行单元测试 我想知道是否可以使用 Junit 测试中的方式发送参数化输入参数 e g InjectMocks MockClass mockClass new MockClass Test public void
  • 在同一台计算机上设置 JBoss 的多个实例

    我在 JBoss 社区中找到了下一页 http www jboss org community wiki ConfigurePorts http www jboss org community wiki ConfigurePorts 有下一
  • 在Java程序中计算zip文件的md5哈希值

    我有一个 zip 文件 在我的 Java 代码中我想计算 zip 文件的 md5 哈希值 有没有我可以用于此目的的 java 库 一些例子将非常感激 谢谢 几周前我通过这篇文章做到了这一点 http www javalobby org ja
  • 在 TextView onTextChanged 上设置文本

    我有一个定义为类属性的文本视图 以便我可以在整个类中访问它 在 onCreate 方法中我执行以下操作 chars TextView findViewById R id chars chars setText 300 之后 public v
  • 如何映射 Map

    I tried ManyToMany cascade CascadeType ALL Map
  • 如何检测java控制台中而不是GUI中的箭头键? [复制]

    这个问题在这里已经有答案了 我正在编写一个应用程序 我需要检测其中的箭头键 C 有getch 函数 我们想要获取输入 然后添加对 ASCII 值的检查 我们如何检测输入箭头键 谢谢 我写了一个Java类原始控制台输入 http www so
  • 从 SQL 语句中检索元数据(表名)

    我使用的是 Visual Studio 2008 我创建了一个 Winforms 应用程序 并且尝试从 SQL 语句中提取表名 con new SqlConnection connString String queryString Sele
  • Java 中的可迭代求和?

    有没有一个库可以做到这一点 public class Iterables private Iterables public static
  • 从 AJP 连接器请求中检索 Shibboleth 属性

    当我在 Apache 上运行 Shibboleth 身份验证时遇到了一个奇怪的问题 当 Tomcat7 在后端运行时 Apache 通过 mod proxy ajp 发送所有内容 Shibboleth 的参数也是如此 In the 文档 h
  • android-如何在谷歌地图上将标记的位置显示为地址

    我已经尝试过 commonsware googlemapsv2 教程 特别是在地图上拖动标记 但现在另一个问题困扰着我 问题是如何将标记的当前位置显示为地图下方或上方的地址 字符串 这是我使用的代码 public class MainAct
  • Android 中带有无尽列表视图滚动的 AsyncTask

    我正在创建一个应用程序 其中我需要有无限的滚动列表视图 我不想在我的应用程序中使用任何库 我在网上看到了一些有助于实现此类列表视图的示例 但我的疑问是 当我的数据来自服务器并在异步任务中进行解析时 如何才能拥有无尽的列表视图 如何从滚动异步
  • 生成签名和加密的 JWT

    我正在尝试使用生成签名和加密的 JWT 令牌雨云智威汤逊 http connect2id com products nimbus jose jwt private void generateToken throws JOSEExceptio

随机推荐

  • Java 正则表达式单词边界

    您好 我有以下代码 旨在查找单词 is 但当它位于另一个字符串中时则不查找 因此单词 this 不应返回匹配项 因此我使用 b 但下面的代码没有找到匹配项 我不明白为什么 public static void main String arg
  • QObject::startTimer:定时器只能与以 QThread 启动的线程一起使用

    我试图在工作线程事件循环中启动计时器 但收到此错误 QObject startTimer Timers can only be used with threads started with QThread 这有什么问题吗 include
  • CI 环境中 Maven 项目的 GPG 密钥保存在哪里?

    我正在尝试使用maven gpg 插件 标志为了在部署到 Sonatype OSS 存储库之前对项目工件进行签名 问题是我应该在哪里保存我的密钥secring gpg 在持续集成中 gnupg目录 在项目源代码中 例如src test re
  • 为什么右方括号“]”不需要在正则表达式中转义?

    考虑数组 new Pattern Pattern compile Pattern compile Intellij IDEA 告诉我 是多余的 并告诉我将其替换为 例如结果是 new Pattern Pattern compile Patt
  • 如何使用 Three.js 和 jsonLoader 制作加载屏幕?

    我有大量的纹理文件和模型要加载到我的项目中 我试图在所有内容加载时显示状态栏或某种加载屏幕 如果有人能给我任何关于如何做到这一点的信息 那就太棒了 Thanks 所需的最低代码如下 THREE DefaultLoadingManager o
  • 我如何处理帆中的独特场?

    我在模型中定义了一个独特的字段 但是当我尝试测试时 似乎它没有被帆检查 因为我得到了一个Error E UNKNOWN Encountered an unexpected error MongoError E11000 duplicate
  • 更改 TabWidget 中的文本颜色和选择器

    I ve a TabWidget 独立于 actionBar in aFragmentTabHost 我想定制的外观和感觉TabWidget但我不明白 我的目的是更改文本颜色和选择器颜色 正如您在图像中看到的那样 我可以更改文本的背景Tab
  • css 浮动及其堆栈顺序

    我正在回顾之前学过的 float 属性 我发现了一个关于浮动元素及其自己的堆叠顺序的简单问题 代码如下 示例1 box 1 background teal width 100px height 100px float left div cl
  • 有没有办法在正则表达式中执行动态替换?

    有没有办法在 C 4 0 中使用匹配中包含的文本函数进行正则表达式替换 在php中有这样的东西 reg replace hello world yay s randomfunction 0 它为每场比赛提供独立的结果 并在找到每场比赛的地方
  • “DS:[40207A]”在汇编中是什么意思?

    0040103A CALL DWORD PTR DS 40207A USER32 MessageBoxA 什么是DS mean 该指令正在从内存加载新的 EIP 值ds 40207A 即地址处有一个函数指针40207A 它推送一个返回地址
  • 将内容插入 iFrame

    我试图将一些内容插入到 空白 iFrame 中 但是没有插入任何内容 HTML JS iframe ready function var doc iframe contentWindow document var body text Tes
  • Kendo-ui MVC PopUp 编辑器:如何隐藏字段

    我正在使用 Kendo ASP NET MVC 我想对编辑表单进行一些控制 我想做的事情 隐藏我的 ID 字段 将我的属性代码和平方英尺更改为常规 TextBoxFor 字段 将购买日期和销售日期更改为 Kendo DatePickerFo
  • 使用 Comet/XMPP 与 Microsoft 堆栈上的 WebSocket 技术进行实时 Web 通知和更新的选项?

    我正在为一个项目确定架构选项 该项目将呈现用户活动 登录 照片等 的实时更新 如 Facebook 该项目的两个主要 UI 组件是一个自动更新滚动区域 其中将列出新通知 照片 等 以及一个将更新消息计数等内容的工具栏 其竞争者是基于 Jab
  • 仅允许大写和小写字母

    我只想接受用户的小写和大写字母 我尝试了下面的代码 它回显了无效字符消息 但不起作用 我的意思是它不检查 它只是显示消息 有什么帮助吗
  • d3.js 中折叠/展开树的子节点?

    我正在构建一个树结构 或者更确切地说 使用我自己的 json 中的一组数据修改其中一个示例 并且我正在尝试创建一些功能 我的树的布局是树示例中的布局 http mbostock github com d3 ex cluster html 我
  • Mathematica 快速 2D 分箱算法

    我在 Mathematica 中开发适当快速的分箱算法时遇到一些麻烦 我有一个很大的 100k 元素 数据集 其形式为 T x1 y1 z1 x2 y2 z2 我想将其分入大约 100x100 个 bin 的 2D 数组中 bin 值由每个
  • super 函数在 Maya python 模块中不起作用

    不知何故 这在 Maya Python 脚本编辑器中工作正常 但在我的模块代码内部时失败 有人有主意吗 class ControlShape object def init self args kwargs print Inside Con
  • mysql 别名的未知列问题

    我不明白为什么当该列是创建的别名时我会得到一个未知列 任何帮助都会很棒 code SELECT DISTINCT c id SUM c width feet 12 SUM c width inches AS width SUM c heig
  • 通过多个活动传递数据

    1 是我的第一个活动 主要 2 是我的第二项活动 3 是我的第三项活动 我想从 1 运行 2 然后形成 2 运行 3 然后从 3 获取数据并将其返回到 1 希望大家能理解 这是我的代码 像这样运行 2 form 1 Intent inten
  • Java RSA 中字符串中的密钥

    我在我的应用程序中使用 RSA 加密技术 为了存储生成的公钥 我将其转换为字符串 然后将其保存在数据库中 Key publicKey null Key privateKey null KeyPair keyPair RsaCrypto ge