我正在使用Maria JDBC驱动程序创建连接到Amazon Aurora DB我想创建一个安全的连接,所以我在这里阅读
使用MySQL实用程序通过SSL连接到DB群集
从https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem.下载Amazon RDS签名证书的公钥请注意,这将下载名为rds-combined-ca-bundle.pem.的文件
第一个问题:它的安全性如何?任何人都可以从亚马逊AWS
下载此pem
文件?
我做了一些研究我应该如何连接到Aurora DB与公钥,我发现这两个链接第一,第二
因此,我的代码非常简单:
Class.forName("org.mariadb.jdbc.Driver");
Properties prop = new Properties();
prop.setProperty("javax.net.ssl.trustStore","C:\\temp\\rds-combined-ca-bundle.pem");
prop.setProperty("user",jdbcDetails.username);
prop.setProperty("password",jdbcDetails.getSensitiveData());
java.sql.Connection conne = DriverManager.getConnection(jdbcDetails.connectionString, prop);
try (Statement stmt1 = conne.createStatement()) {
// Execute all but the rest
ResultSet rs = stmt1.executeQuery("Select 98765 from dual limit 2");
while(rs.next()) {
rs.getLong(1);
}
}
conne.close();
第二个问题:公钥文件
与加密有什么关系?
以上信息不符合OracleJava信息,这些信息表示:
如果客户端希望对服务器进行身份验证,则客户端的信任存储必须包含服务器的证书
第三个问题:据我所知,如果客户端信任服务器,则不需要他使用此文件
第四个问题:我正在用Wireshark检查连接创建情况,无论有没有这个公钥文件
,我都能创建连接,而且Wireshark中的两个案例都是加密的
看起来像这样的东西:
Encrypted Application Data:
eb:62:45:fb:10:50:f7:8c............:b9:0a:52:e7:97:1d:34
基于这个答案,我了解了公钥的用法:
首先,亚马逊AWS Azure留档似乎有点误导——它只与称为MySQL实用程序的特定工具连接相关
第一个答案
"Java肯定可以建立SSL连接,而无需客户端验证服务器的证书链。"
进行密钥交换是为了确保其连接的服务器确实是其预期的服务器(即非可疑服务器)。这意味着它仍然是相同的SSL连接,但如果verifyServerCertificate=false,则不会验证它是否是预期的服务器
回答第四个问题:Currect,代码是用Java编写的,传递SSL参数会使其加密。
因此,使用这些参数给出了所需的?trustServerCertificate=true
问题内容: 我正在编写一个用于传输文件的小型应用程序,或多或少地将其作为一种学习更多编程加密基础的方法。这个想法是生成一个RSA密钥对,交换公共密钥,并发送AES iv和密钥以进一步解密。我想用接收者的RSA公钥加密AES密钥,如下所示: 然后,我将密钥值写给接收器,并按如下方式解密: 在控制台的另一端,我将其作为输出: 此外,如果我创建一个大小为16的字节数组,并将cipher.doFinal(
我想为这个方法生成的公钥创建文件 因为我正在为移动应用程序生成此密钥,而他们无法读取,所以他们请求文件,而不是作为字符串的公钥 请各位指教,,
一段时间以来,我一直在阅读CodeProject a的一篇文章,该文章解释了如何使用RSA提供程序进行加密和解密: RSA私钥加密 虽然2009年的旧版本有缺陷,但2012年的新版本(支持System.Numerics.BigInteger)似乎更可靠。但这个版本缺少的是一种使用公钥加密和使用私钥解密的方法。 所以,我自己也试过了,但解密时会收到垃圾。我对RSA提供商不熟悉,所以我对这里一无所知。
我使用Delphi XE和Lockbox3.5,我想加密一个字符串,该字符串具有支付网关提供的公钥,需要操作,公钥类似于:------开始公钥------这里的职员------结束公钥------我无法使RSA编解码器读取该公钥,我的代码如下: 编解码器cdcRA链接到CryptoLibrary,密码为(RSA公钥加密系统*),链接模式为空,但此代码失败,并出现内存不足错误。谢谢你的提示。。 演示
我的Android应用程序实现了RSA加密,但后端无法解密应用程序生成的令牌。这是代码,公钥的开始行和结束行在调用之前都被删除了,会有什么问题吗? 后端团队提供了以下可以工作的示例代码,但它是针对桌面Java的。Android库没有base64.getEncoder方法。这和我写的非常相似,但我的就是不起作用。 我比较了每一步的字节数组值。桌面密码和android密码得到的输入完全相同。然而,来自
我想使用带有RSA算法的OpenSSL使用私钥加密文件: 现在,如果我执行解密操作: 此操作需要私钥 我知道我应该使用公钥进行加密,如果我使用私钥,我会得到一个签名。 然而,我想这样做是为了学习。