1.遇到的項目場景是,要跟一個用.net語言開發的系統進行接口調用,要用到sm4的加密算法,一開始的時候解決辦法是用java調用c++,然后c++調用c#的代碼,在windows系統下可以實現雙方的加密和解密保持
一致,但是我們系統的服務器是linux系統,在linux系統下不支持調用c#語言的dll文件所以部署到服務器上就不能使用了
2.采取的辦法是通過c#調用java的方法,應為java是跨平台的開發語言
3.實現方式:
通過網上查找找到一種通過將java的方法打成jar包然后將jar轉化成dll文件然后再讓c#將dll引入這樣就可實現調用了!
采用的工具是ikVM (https://www.cnblogs.com/hxh88/p/5904909.html)
具體方法是下載IKVM
然后解壓進入bin目錄下,打開cmd窗口執行
ikvmc-out: 例子.dll 例子目錄/例子.jar
然后打好的。dll文件就在bin目錄下
然后C#項目引入是也要講bin目錄下的三個dll文件引入,包括:IKVM.OpenJDK.Core.dll IKVM.Runtime.dll IKVM.Runtime.JNI.dll
在c#直接用usring 包名即可