用公共密钥进行RSA解密
我的Android项目有一些解密问题. 我要获得一个带有私钥的字符串,我必须用公共密钥对其进行验证(解密). 我想获得的结果完全相同,就像我使用php函数-openssl_public_decrypt( http://php.net/manual/pl/pl/function.openssl-public-decrypt.php ) 我必须在我的Java项目中执行此操作,因此我可以使用Java Libs(例如Bouncycastle,或其他任何建议?) 有什么想法解决这个问题? 好,这是我的代码. 我得到这样的公钥 PEMReader reader = new PEMReader(new InputStreamReader(ctx .getAssets().open("pubkey.pem"))); Object obj; while ((obj = reader.readObject()) !
0 2024-02-05
编程技术问答社区
PackageInfo.signatures返回什么?
为什么此值中有多个签名?这些值是包装的公钥吗? 我可以使用此签名唯一地识别一个包,而不是在Meta-Inf下读取文件,或在整个APK文件上计算MD5? 解决方案 根据@hackbod,这就是APK签名的所有公共密钥 尽管名称,但packageinfo的内容是您的应用程序签名的公共钥匙.这绝对,积极地不会在构建之间发生变化.这是应用程序开发人员的纯标识. 参考:
0 2024-02-05
编程技术问答社区
Android-Java RSA解密
我需要从二进制字符串中创建RSA算法的公共密钥. 我的代码是: String pubKey = "tihq/Gk3OUs5NzP+XTRKXBwSxHtB0TWn0RREcpXEtp316tyD9DzKaIbdKexb/mRr"; byte[] keyBytes = Base64.decode(pubKey,Base64.DEFAULT); //test if is correct: ok Log.d("response keyBytes",new String(Base64.encode(keyBytes,Base64.DEFAULT))); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); X509EncodedKeySpec spec = new X509EncodedKeySpec(keyBytes); RSAPublicKey publicKey = (RSAPublicKey) keyF
4 2024-02-02
编程技术问答社区
安卓应用内计费:确保应用公钥安全
来自应用帐单版本3版(TrivialDrive)示例应用程序的Android mainActivity.java /* base64EncodedPublicKey should be YOUR APPLICATION'S PUBLIC KEY * (that you got from the Google Play developer console). This is not your * developer public key, it's the *app-specific* public key. * * Instead of just storing the entire literal string here embedded in the * program, construct the key at runtime from pieces or * use bit manipulation (for example, XOR with some
0 2024-01-28
编程技术问答社区
AWS cognito公钥证书
我需要Amazon Cognito使用的公共密钥证书,以便我的Web应用程序可以验证Cognito JWT. 无论如何是否有获得公共密钥证书,或者您必须使用Cognito SDK来实现这一目标? 解决方案 使用 get-signing-certificate AWS CLI的方法获取Cognito公共X509证书的内容.这是一个示例命令: aws cognito-idp get-signing-certificate --user-pool-id ca-central-1_xxxxxxxxx 您将获得带有基本64编码的证书的一行.用-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----的标准标记包围.最终结果看起来像这样: -----BEGIN CERTIFICATE----- MIICdzCCAeCgAwIBAgIGANc+Ha2wMA0GCSqGSIb3DQEBBQUAMFMxCzAJBgNVBAYT AlV
0 2024-01-26
编程技术问答社区
使用scp将文件复制到亚马逊EC2实例?
我正在尝试使用我的MAC终端从下载(我在网上下载的PhpMyAdmin)到我的Amazon EC2实例进行SCP文件. 我使用的命令是: scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/. 我遇到的错误: 警告:身份文件myamazonkey.pem无法访问:没有此类文件或目录. 许可拒绝(publicKey). 丢失的连接 我的myamazonkey.pem和phpmyadmin-3.4.5- alllanguages.tar.gz都在下载,所以我尝试了 scp -i /Users/Hello_Kitty22/Downloads/myAmazonKey.pem /Users/Hello_Kitty22/Downloads/phpMyAdmin-3.4.5-all-languages.tar
4 2024-01-24
编程技术问答社区
.ssh配置与亚马逊ec2和git
我从Amazon EC2服务器克隆GIT存储库有一个奇怪的问题.它在我运行Ubuntu 12.04的一台计算机上没有任何问题,而在另一款使用12.10的计算机上,它给了我一个错误: ssh: Could not resolve hostname ec2server: Name or service not known fatal: The remote end hung up unexpectedly 这就像没有识别我的配置文件.我使用以下git命令克隆: sudo git clone ec2server:/var/www/project.git 或 sudo git clone ec2xxx.compute-1.amazonaws.com:/var/www/project.git 两个配置文件在两台计算机上都是相同的,〜./ssh内有以下内容: Host ec2server Hostname ec2XXX.compute-1.amazona
6 2024-01-24
编程技术问答社区
JAVA AES 256和公钥加密
我们的客户之一要求我们使用AES 256和公共密钥加密加密从Web服务返回的消息 服务器端(Web服务)是基于Java的. 客户端可能是Java或.Net. 我不熟悉任何加密方法,找不到任何可以让我开始的示例... 甚至可以实施AES 256和公共密钥加密吗? 它如何工作(公钥加密)? 请引导我进入一个可以让我开始的示例. 解决方案 aes256 是一种特定的对称加密方案,该方案要求通信方具有预先共享的加密密钥. public-key密码另一方面是一个不对称的加密原则一个公共密钥与他保密的每个私钥共享.后者的一个典型示例是 rsa .. 对称和非对称加密都有优点和缺点,您应该首先找出您(或客户)想要什么.然后,实施任何密码学时,请务必确保使用常见的库,并且永远不会(永远)尝试自己实施任何加密算法.这些主题中的小错误通常会导致完全不安全感.
0 2024-01-19
编程技术问答社区
如何将混合密码系统的AES初始化向量传达给客户端
我需要为客户服务器通信实施安全性.我已经实施了以下 hybrid cryptosystem 要加密在混合加密系统中给爱丽丝发给爱丽丝的消息,鲍勃做以下操作: 获得爱丽丝的公钥. 为数据封装方案生成一个新的对称键. 使用刚刚生成的对称密钥在数据封装方案下加密该消息. 使用爱丽丝的公共密钥,在密钥封装方案下加密对称密钥. 将这两个加密发送给爱丽丝. 要解密此混合文字,爱丽丝执行以下操作: 使用她的私钥解密密钥封装段中包含的对称键. 使用此对称键来解密数据封装段中包含的消息. 我将RSA用于公钥密码系统,而AES用于对称键密码系统.每个事情都可以正常工作,但是我不确定如何处理AES初始化向量.当前,我正在加入AES密钥和初始化向量将其加密到公共密钥并将其发送到服务器. 我只是想对这种方法有一些意见.其他通信协议SSL等如何解决此问题. 谢谢. 解决方案 您不加密IV.用加密的键将其捆绑,然后(清晰)将其发送给收件人. 确实存在标
0 2024-01-19
编程技术问答社区
在C#中,有签名的程序集的公钥的结构是什么?
使用此代码检索公共密钥字节... var pubKey = AppDomain.CurrentDomain.DomainManager.EntryAssembly .GetName().GetPublicKey(); 键的开始(前32个字节)是什么共同的结构? 它不是ASN.1,也不是可变的.我可以谷歌搜索并重复. // 00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00 00 24 00 00 52 53 41 31 都是逆转的,还是仅仅是其中的一部分(例如,最后的模量)? 52 53 41 31是RSA1的字符串. 我的钥匙的模量为1024位,所以我正在寻找描述长度的东西. 0x0400(00 04 B.E.)为1024(位),0x80为128(字节,1024/8). // 00 04 00 00 01 00 01 00 这是公共指数的最后4至6?大还是小末日?最后一个空是终结器还是垫
4 2024-01-08
编程技术问答社区
使用RSA公钥解密数据
首先,这不是错字,我想使用 public 键进行解密.这样做的目的是挑战第三方,以确保他们确实具有与公共密钥相对应的私钥.基本上,我会发送一些随机数据,他们将使用其私钥对其进行加密,我将使用公共密钥解密,并将解密值与我发送的随机数据进行比较.我认为这是公共密钥加密中的一个非常标准的程序,但由于某种原因,用公共密钥解密似乎是禁忌. 我只是使用.NET 2.0中的RSACryptoServiceProvider.但是,当我调用Decrypt时,它会带有消息Bad Key触发CryptographicException.钥匙还不错(我可以Encrypt没有问题),但似乎不会让我仅仅用公共密钥解密.是什么赋予了?这必须可以做. 解决方案 我认为公认的术语正在签名.他们符号带有私钥,您 使用公共密钥.我承认我不理解低级数学,但是我的理解实际上只是用私钥加密. 使用RSACryptoServiceProvider的符号并验证方法家族.实际上,SignHash实际上说:"用私钥对其
2 2024-01-07
编程技术问答社区
RSA。Java 加密 .NET 解密
我需要实现登录到.NET SOAP Web服务.此Web服务具有方法 AuthenticateUser(username, password) 和密码应使用RSA公钥加密.在我想做的事情之下: public static final String PUBLIC = "q/9CujExqL6rsMMO22WWIotoXDCw5KEmGQJqL9UJEfoErwZ9ZCm3OwMTSlAMSfoXEMA04Y1rhfYC3MtU/7dYEoREfsvOPGDBWanTKyMzv2otCfiURyQoghEdkhv3ipQQaaErT7lfBKobJsdqJlvxo4PCOUas2Z6YpoMYgthzTiM="; public static final String EXPONENT = "AQAB"; public static PublicKey getPublicKey() throws Exception{ byte[] modu
2 2024-01-07
编程技术问答社区
简单使用RSACryptoServiceProvider KeyPassword失败
我想用密码保护我的RSA私钥(谁不会),但以下C#失败: SecureString pw = new SecureString(); pw.AppendChar('x'); CspParameters prms = new CspParameters(); prms.KeyPassword = pw; RSACryptoServiceProvider crypto = new RSACryptoServiceProvider(prms); byte[] encrypted = crypto.Encrypt(Encoding.ASCII.GetBytes("encryptme"), true); ...带有加密摄影感受:"指定的无效类型".如果我取出键盘作业,则可以正常工作. 我或Microsoft做错了什么? 解决方案 设置CspParameters.KeyPassword等于用PP_KEYEXCHANGE_PIN(或PP_SIGNATURE_PIN)调用Cryp
2 2024-01-06
编程技术问答社区
获取.Net程序集的PublicKeyToken
找到集会的公开键的最简单方法是什么? 我能想到的最简单的方法是一个简单的右键单击,获取公开密钥,但是此功能不存在,也许有一个视觉工作室扩展名? 我正在使用Visual Studio 2010,如果有扩展名. 解决方案 根据您的Visual Studio版本和操作系统体系结构打开命令提示符并键入以下行: vs 2008上的32位Windows : "%ProgramFiles%\Microsoft SDKs\Windows\v6.0A\bin\sn.exe" -T vs 2008在64位窗口上: "%ProgramFiles(x86)%\Microsoft SDKs\Windows\v6.0A\bin\sn.exe" -T vs 2010上的32位窗口: "%ProgramFiles%\Microsoft SDKs\Windows\v7.0A\bin\sn.exe" -T
2 2024-01-02
编程技术问答社区
如何在xaml中绑定公共属性
我要做的就是将公共财产绑定到文本块.我在这里做错了什么? namespace WpfApplication1 { public partial class MainWindow : Window { public string test { get; set; } public MainWindow() { test = "this is a test"; InitializeComponent(); } } }
4 2023-12-17
编程技术问答社区
Python打印所有公钥证书信息(X.509格式)
我正在尝试编写一个Python3程序,该程序将向我展示所有信息,该信息包含在公共密钥证书中,类似于以下Linux命令: openssl x509 -in website.com.pem -text 将返回类似于 的结果 Certificate: Data: Version: 3 (0x2) Serial Number: 04:7a:f7:95:47:c0:7d:0f:ef:80:a5:b2:1f:51:e3:63 Signature Algorithm: sha256WithRSAEncryption Issuer: C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Domain Validation Secure Server CA Validity Not Before: Mar 12 0
4 2023-12-15
编程技术问答社区
从证书x509中提取公钥
我正在寻找一种从JavaScript中从证书x509(PEM格式)提取公共密钥的方法: openssl x509 -in cert.cer -pubkey -noout > pub.txt 解决方案 您需要可以解析ASN.1结构的东西.您可以使用可以找到演示其他解决方案 var cert = forge.pki.certificateFromPem(pem); var pem = forge.pki.publicKeyToPem(cert.publicKey) 感谢Halloulaguesmi.这似乎很好. 其他解决方案 node.js v15.6.0之后,您可以使用如果您想导出publicKey,则 export 可以使用export /p> 对于公共密钥,可以使用以下编码选项: 类型:必须是" PKCS1"(仅RSA)或" SPKI". 格式:必须为'pem','der'或'jwk'. 样本代码 const crypto = r
4 2023-12-15
编程技术问答社区
如果两个文件的公钥相同,是否足以断定它们是由同一个证书签署的?
我正在为我的软件实施自动更新机制.服务器上的MSI使用Signtool签名.我的应用程序下载了MSI并读取已下载的MSI的公钥.如果公共密钥与源代码中的硬编码的公钥匹配,则将执行MSI并自行更新. 这足以确保没有恶意MSI被错误地执行?我的理解是,只有在我的证书签名时,文件才具有相同的公钥. 编辑: 在Petey的帮助下,我能够检测到MSI是否是通过我的证书签名的.但是,这并不能解决我的问题.我仍然可以使用像Orca这样的工具编辑签名的MSI.即使是MSI也不再与已签署的MSI相同,证书也没有发生.因此,当我检查MSI是否由我签名时,我会得到.虽然我知道这可能是意图的行为,但是必须有某种方法来检测MSI是否被篡改了? 解决方案 赔率是,如果是相同的公钥,则是相同的证书.但是有了这个知识,攻击者可以轻松地模仿您的公钥并将其粘在他的MSI上,因为它是公开的.您应该使用该公共密钥来验证MSI上的签名,而不仅仅是检查它是否是相同的公钥,这样您就可以确定它是用相应的私钥签名的,
6 2023-12-15
编程技术问答社区
如何用Java创建一个X509证书?
我想使用Java语言创建X509证书,然后从中提取公钥. 我已经搜索了互联网并找到了许多代码示例,但是所有这些示例都有错误(未知变量或未知类型),或者有许多警告,例如:"方法...来自类型...是不弃用的...等. 例如,为什么以下代码不起作用: PublicKey pk; CertificateFactory cf = CertificateFactory.getInstance("X.509"); String PKstr = pk.toString(); InputStream PKstream = new ByteArrayInputStream(PKstr.getBytes()); X509Certificate pkcert = (X509Certificate)cf.generateCertificate(PKstream); 谁能告诉我如何使用纯Java或Boncy Castle创建证书,然后从中获得公钥? 谢谢大家. 解决方案 对于J
8 2023-12-15
编程技术问答社区
如何解析特定的 ASN1 RSA 公钥(分为模数和指数),以便构建 RSAPublicKeySpec?安卓 Java/Kotlin 案例
我有此公共密钥,该公共密钥是由Delphi 10.2 Turbopower Lockbox 2模块生成的: MIGIAoGBALtEMVXxHBWzBx/AzO/aOHrYEQZB3VlqYBvqX/SHES7ehERXaCbUO5aEwyZcDrdh2dMTy/abNDaFJK4bEqghpC6yvCNvnTqjAz+bsD9UqS0w5CUh3KHwqhPv+HFGcF7rAuU9uoJcWXbTC9tUBEG7rdmdmMatIgL1Y4ebOACQHn1xAgIlKg== 这个strang可以通过 Algo RSA Format X.509 ASN1 Dump RSA Public Key [60:df:88:a2:71:97:21:f2:45:88:94:6c:5a:63:1e:1e:8f:a0:50:a0] modulus: bb443155f11c15b3071fc0ccefda387ad8110641dd596a601bea5ff
8 2023-12-15
编程技术问答社区