目前系统客户端用.net实现,java服务端采用了webservice的方式向客户端提供服务。
要实现的功能:验证从.net客户端登陆的用户的合法性。用户从客户端登陆,需要调用java接口验证用户信息的合法性。原java系统中采用了MD5的方式对用户的某些数据进行加密,加密后的数据保存到了DB中。
问题1:用户的某些敏感数据不能在.net的客户端用MD5进行处理。
因为原java系统中用的MD5不是通用的算法,而是对通用MD5进行了改造。糟糕的是,现在做.net客户端的程序员无法实现这个MD5。
解决办法:MD5的工作由java端处理。
即客户端传明文到java端,由java端对用户数据进行MD5处理。这样就实现了用户信息验证的功能。同时又带来了另一个问题。
问题2:数据通讯中怎么能传明文呢?太不安全了吧,别人截获了http消息,不就拿到用户数据了吗,太危险了!
解决办法:
用户的数据需要在传输的过程中做加密处理。客户端和服务端一致决定采用DES的加密算法进行加密,但具体处理的过程
中又遇到了一些问题。
问题3:.net端加密出来的数据在java端却无法正确解密。
两边的加密解密不匹配。查了一些资料才知道,.net端默认的DES算法模式和java的不同。感叹互联网的威力啊,可以找到那么多的相关资料,然后我就修修补补,敲敲打打,历尽百辛千苦,终于小功告成,呵呵。
最后的解决办法:
1.客户端和服务端对通讯数据进行了加密处理,杜绝了传递明文。
2.MD5的工作放到java端来做。
我对数据加密所知甚少,而且对通用的处理方式也不太了解,真诚希望能够得到有经验的各位多多指点,谢谢!
分享到:
相关推荐
后端Java实现AES加密解密: 1. **导入依赖**:在Java中,我们需要添加Apache Commons Codec库来处理Base64编码,以及Java Cryptography Extension (JCE)来支持AES操作。确保JCE未受限制,因为默认情况下,Java对某些...
在Flutter和Java混合开发的场景中,"flutter加密java解密"的主题涉及到如何在Flutter客户端与Java后台之间进行安全的数据交互,确保信息在传输过程中不被窃取或篡改。这里我们将详细讨论如何实现这一目标,并保证App...
在“RSA浏览器加密,服务端解密”这个主题中,我们探讨的是如何使用RSA算法在客户端(浏览器)进行数据加密,然后将加密后的数据发送到服务端进行解密。这种方法可以有效防止数据在传输过程中被中间人窃取,因为只有...
代码中完成了主链路部分,包括对客户端登录验证及应答,注销及应答,保持连接及应答,接收实时定位数据及历史定位数据等。如果扩充新业务只需要实现SocketMsgHandler接口即可。因第三方厂商没有对数据加密,故本项目...
在Java编程语言中,加密算法是安全通信的关键组成部分,特别是在涉及网络传输敏感数据时。公钥加密和私钥解密是一种非对称加密技术,它允许数据在不安全的环境中安全传输。本主题将深入探讨Java如何实现这种机制,...
- **接口设计**:定义清晰的API,使得Delphi和Java可以调用相应的加解密函数,完成数据的加密和解密操作。 - **错误处理**:良好的错误处理机制,可以及时发现并处理可能出现的问题,保证程序的健壮性。 通过这个...
.NET微信小程序用户数据的签名验证和解密是一个涉及.NET开发、微信小程序和安全性验证的技术过程。在开发涉及微信小程序的应用时,为了确保从客户端接收的数据的安全性,开发者需要对用户数据进行签名验证。同时,在...
客户端通过调用服务端的Web服务接口来进行通信。CXF提供了多种方式来创建客户端,包括动态客户端和静态客户端。动态客户端可以自动生成服务代理,而静态客户端则需要手动创建服务代理类。在这个项目中,可能包含了对...
3. 消息处理:实现消息的加密解密,保证用户隐私安全;同时,需要处理消息的发送、接收、显示等逻辑。 4. 身份验证与授权:客户端需要有安全的身份验证机制,确保只有合法用户可以登录。 【服务端】服务端是整个...
- **数据校验**:为了保证数据的完整性和安全性,可能需要进行数据加密和解密,以及消息的序列化和反序列化。 通过以上知识点,可以构建出一个完整的Java多线程局域网聊天系统,它能够在局域网环境中为用户提供...
通过分析和理解这段源码,开发者可以更好地掌握.NET下RSA加密解密的实际应用,为自己的项目提供安全保障。 总的来说,基于.NET的RSA私钥加密和公钥解密是.NET开发中一个重要的安全功能,它结合了理论与实践,为网络...
有两个Java文件(RSACrypt.java和RSACryptTest.java)和一个JavaScript文件(jsencrypt.min.js),这表明代码实现了RSA加密解密的Java版本和JavaScript版本,可以在客户端和服务端之间进行安全的数据传输。...
在.NET框架中,RSA是一种广泛使用的非对称加密算法,常用于...具体源码的实现细节,如如何加载和使用密钥,如何处理加密解密过程中的异常,以及如何将加密应用于文件或数据流,需要查看提供的源码文件才能详细解析。
在C#中开发微信小程序的服务端,获取用户解密信息是关键步骤之一,这涉及到微信小程序与微信服务器之间的数据交互...开发者需要理解微信小程序的授权流程、API调用机制以及相关的加密解密技术,才能正确实现这一功能。
JavaEE服务端RSA解加解密是Web应用中常见的安全技术,主要应用于数据加密与解密,以确保敏感信息在传输过程中的安全性。RSA是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,其特点是...
AES256是一种高级加密标准(Advanced Encryption Standard),是目前广泛应用的数据加密算法,以其强大的安全性、效率和灵活性而闻名。该标准由NIST(美国国家标准...这些知识点对于理解并实现AES256加密解密至关重要。
WebService就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web调用来实现...Web Service客户端获取服务端webservice接口内容的六种方式(含sm3,sm4加密解密方式)
使用`Cryptopp`时,我们需要包括相应的头文件,创建加密对象,设置密钥,然后调用相应的函数进行加解密操作。 例如,对于`AES`加密,我们可以使用`AES::Encryption`类,创建一个`AES`加密对象,设置128位的密钥,并...
最后,调用`doFinal`方法进行加密或解密。 在Java服务端,3Des的实现与Android类似,也是使用`javax.crypto`包。区别在于服务端可能需要处理更多的安全需求,例如密钥的生成、存储和分发,以及更复杂的加密模式和...
在实际应用中,这种Java和JavaScript之间的RSA加密解密方案可以增强安全性,防止数据在传输过程中被窃取。但需要注意的是,RSA的效率较低,不适用于大量数据的加密,一般用于加密较小的密钥或者对其他算法的密钥进行...