Java调用C#的DLL实现方案.docxVIP

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java调用C#的DLL的最佳实践 2021.4.1 需求背景,甲方以前有个项目用C#开发,现在我们用Java开发的项目业务需要调用C#的加密解码工具。 开发工具Visual Studio 2019 提前安装好开发工具和组件库 我在管网下载了社区版,免费。 安装好 安装组件库 包括.NET桌面开发、使用C++的桌面开发、通用Windows平台开发。 以管理员方式启动vs (项目涉及到注册com组件,必须以管理员启动才能完成),新建c#项目 这里一定要注意,选择语言C#、项目类型选择 库、 这时有三个类库, 如上的2个,都不能选。这是坑。 选下面这个,类库(.NET Framework) 输入项目名称: Invoke 解决方案名称: DLL_of_CSharp_calling_by_Java 注意选择框架: 必须选择4,这个都是坑,后面进行不下去的。 设置c#项目 首先,右键刚刚新建的Invoke项目,点击属性 修改程序集,是COM可见。 我的如下 继续设置项目属性。 点击生成 我选择64位,勾选COM互操作注册。 千万记得保存。 新建需要被调用的CSharp类代码 项目默认帮我们创建了一个Class1.cs文件。 我们给它重命名为MClass.cs。 并给class MClass添加两个方法。加密、解密。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security.Cryptography; namespace Invoke { public class MClass { public string Encrypt(string pToEncrypt, string sKey) { using (DESCryptoServiceProvider des = new DESCryptoServiceProvider()) { byte[] inputByteArray = Encoding.UTF8.GetBytes(pToEncrypt); des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); System.IO.MemoryStream ms = new System.IO.MemoryStream(); using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write)) { cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); cs.Close(); } string str = Convert.ToBase64String(ms.ToArray()); ms.Close(); return str; } } public string Decrypt(string pToDecrypt, string sKey) { byte[] inputByteArray = Convert.FromBase64String(pToDecrypt); using (DESCryptoServiceProvider des = new DESCryptoServiceProvider()) { des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); System

文档评论(0)

小青欣文案铺 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档