- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
- 软件工程综合实践报告.pdf
- jenkins详细使用文档.pdf
- jenkins git maven搭建自动化部署环境.pdf
- Java在线问题诊断工具.pdf
- JavaSE基础代码总结.pdf
- ceph常用操作和故障排查.pdf
- 基于物联网的居民区垃圾分类回收系统.docx
- ngrok使用自己的证书通过https访问.docx
- jenkins实现maven项目自动部署到tomcat .docx
- Java开发简历参考项目(学生用).docx
- 2024年光伏全球巡礼中国篇:供需失衡,何时出清.pdf
- 2024年服务消费行业分析报告:服务消费的时代交响,不畏浮云遮望眼,迭代发展进行时.pdf
- 2024年电子行业分析报告:Scaling+law依然有效,自研AI芯片后劲十足.pdf
- 2024年艾融软件分析报告:深耕金融IT领域,收购优质资产打开市场空间.pdf
- 2023年AIGC行业分析报告:GPT-4v如何实现强大多模态,从文生图到图生文.pdf
- 2023年电力辅助服务行业分析报告:重塑价值.pdf
- 2023年亚朵分析报告:体验驱动,中高端国民品牌.pdf
- 2023年钠离子电池行业分析报告:突破关键资源瓶颈,性能优势显著.pdf
- 2023年甲骨文分析报告:战略拐点已过,基本面回归上行趋势.pdf
- 2024年智能汽车行业分析报告:FSD入华在即,关注汽车数据闭环服务商.pdf
最近下载
- 中职《幼儿心理学》课程教学课件-项目二任务3 感知觉规律的运用.pptx VIP
- Hasselblad哈苏H6中文说明书.pdf
- (人教2024版)一年级数学上册《数学游戏》单元复习讲义.docx
- 木材人造板制造工艺考核试卷.docx VIP
- 百家争鸣(共张PPT)-PPT课件模版[1].pptx
- 《无障碍设施施工验收及维护规范》(GB50642—2011)的解读.pdf VIP
- 13_一等奖丨清华大学丨“三位一体,三创融合,开放共享”创新创业教育体系和平台的创建(20220427推文).pdf VIP
- 百得两用燃烧机TBML 1200 ME电子控制器调试安装说明书.pdf
- 磁共振成像原理与临床应用完整版.ppt VIP
- 人教2024版英语七年级上册Starter Unit 1- Unit 3基础知识练习(含答案).docx VIP
文档评论(0)