天天看点

JAVA和C# 3DES加密解密

内部邀请码:C8E245J (不写邀请码,没有现金送)

国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。 

------------------------------------------------------------------------------------------------------------------------------------------------------------------

最近 一个项目.net 要调用JAVA的WEB SERVICE,数据采用3DES加密,涉及到两种语言3DES一致性的问题,

下面分享一下,

这里的KEY采用Base64编码,便用分发,因为Java的Byte范围为-128至127,c#的Byte范围是0-255

核心是确定Mode和Padding,关于这两个的意思可以搜索3DES算法相关文章

一个是C#采用CBC Mode,PKCS7 Padding,Java采用CBC Mode,PKCS5Padding Padding,

另一个是C#采用ECB Mode,PKCS7 Padding,Java采用ECB Mode,PKCS5Padding Padding,

Java的ECB模式不需要IV

对字符加密时,双方采用的都是UTF-8编码

下面是C#代码

Java代码

下面是运行结果

ECB模式:

CBC模式: