Bouncy Castle

C#使用BouncyCastle实现RSA签名加密,与JAVA互通

泄露秘密 提交于 2020-02-28 07:24:41
问题 调用其他支付公司提供的接口(第三方接口是JAVA编写,也只给提供JAVA的调用示例。),给了一个pfx的公钥,直接尝试用C#的签名加密调不通,C#签名加密方法如下: /// <summary> /// 公钥加密 /// </summary> /// <param name="value">要加密的数据</param> /// <returns></returns> public static string SignEncrypt2(string value) { try { //根据路径和密码,读取公钥文件证书 X509Certificate2 pc = new X509Certificate2("\\test.pfx", Config.PrivateLucPwd); RSACryptoServiceProvider p = (RSACryptoServiceProvider)pc.PublicKey.Key; byte[] enBytes = p.SignData(Encoding.UTF8.GetBytes(value), new SHA1CryptoServiceProvider()); p.Dispose(); return Convert.ToBase64String(enBytes); } catch { } return string.Empty; }

尝试运行.jar时出现“无效签名文件”

こ雲淡風輕ζ 提交于 2020-02-27 03:29:58
我的Java程序打包在jar文件中,并使用外部jar库 bouncy castle 。 我的代码可以正常编译,但是运行jar会导致以下错误: 线程“主”中的异常java.lang.SecurityException:清单主要属性的无效签名文件摘要 我在Google上搜索了一个多小时,一直在寻找解释,却发现价值不大。 如果有人以前曾见过此错误并可以提供帮助,我将有义务。 #1楼 对于使用gradle并尝试创建和使用胖子的人,以下语法可能会有所帮助。 jar { doFirst { from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } } exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA' } #2楼 两种不同的签名者可能会使Java思维混乱。 尝试从jar中删除META-INF文件夹,添加清单并再次签名JAR,它对我有帮助: http : //jehy.ru/articles/2013/12/13/invalid-signature-file-digest-for-manifest-main-属性/ #3楼 如果在尝试为Xamarin.Android绑定项目绑定JAR文件时遇到这种情况,请执行以下操作:

在C#中加密和解密字符串?

一世执手 提交于 2019-12-25 21:42:39
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 如何在C#中加密和解密字符串? #1楼 字符串的对称身份验证加密的现代示例。 对称加密的一般最佳实践是使用带有关联数据的身份验证加密(AEAD),但这不是标准.net加密库的一部分。 因此,第一个示例使用 AES256 ,然后使用 HMAC256 (两步 加密,然后使用MAC) ,这需要更多的开销和更多的密钥。 第二个示例使用开放源代码Bouncy Castle(通过nuget)使用AES256- GCM 的更简单实践。 这两个示例都具有一个主要功能,该功能接受秘密消息字符串,密钥和可选的非秘密有效载荷,并返回和经过身份验证的加密字符串,该字符串可选地以非秘密数据为前缀。 理想情况下,您可以将它们与随机生成的256位密钥一起使用,请参见 NewKey() 。 这两个示例还具有使用字符串密码生成密钥的辅助方法。 提供这些辅助方法是为了方便与其他示例匹配,但是它们的 安全性要差得多, 因为密码的强度将 远小于256位密钥 。 更新: 添加了 byte[] 重载,由于StackOverflow的答案限制,只有 Gist 才具有4个空格的缩进和api文档的完整格式。 .NET内置加密(AES)-然后MAC(HMAC) [要点] /* * This work (Modern Encryption of a String

Activiti使用maven alfresco仓库问题处理

可紊 提交于 2019-12-01 06:53:39
环境 项目用到了Activiti工作流引擎。 项目使用maven进行依赖管理。 遇到问题 项目使用的activiti版本是5.13,但是maven中央库中是从5.14开始的。 从网上找到 https://maven.alfresco.com/nexus/content/groups/public/ 这个仓库包含5.13版本。 但是配置完该仓库,使用maven从里面下载的时候出现了异常。 java.lang.RuntimeException: Could not generate DH keypair 搜索解决方案 从网上搜,找到了: 这里 还有 这里 解决方法 下面内容摘自上述第二个搜索结果: Solution: The problem is “Prime size must be multiple of 64, and can only range from 512 to 1024″. The maximum-acceptable size that Java accepts is 1024 bits, this is a known issue http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6521495 . I tried using the Java Cryptography Extension (JCE)