网络信息传输之数据加密【一】

本文探讨了网络信息传输中的数据安全问题,强调了数据加密的重要性。介绍了HTTPS协议作为HTTP的安全增强版,用于加密传输和身份验证。接着,讨论了基于Java的数据加密方法,包括使用C/C++编写加密代码以防止源码泄露,以及常见的加密算法如Base64、MD5和RSA。RSA是一种非对称加密算法,提供了更高的安全性,但其安全性的关键在于私钥的保护。最后提到了RSA的数学原理和Java实现的简要介绍。
摘要由CSDN通过智能技术生成

通常信息游走在网络中,如果未加密,对于有心人来说这些信息就是唾手可得而且拿来就能用的利益,最简单的例子就是用户登录的用户名和密码,我们用抓包工具抓取数据包,打开之后用户名和密码就是以明文的状态显示在我们面前,在用户登录、两个网络终端之间的通信,app请求服务器等等任何涉及到敏感信息的地方都有信息泄露的风险。如何避免这种情况呢

  1. 使用Https协议
  2. 对数据进行加密

因为本文主要是对数据加密进行探究,所以https协议先大致说一下,以后再针对https总结一篇文章。

https协议,可以看作http的加强版,http不安全、无法加密、不需要证书等等,https协议是使用SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,需要申请证书。因为https会对传输的数据进行加密,并且可以判断数据是否被篡改过,所以https的安全本质上也是对数据进行加密,但是对于数据的一致性校验等相较于我们普通的数据加密要做的更为全面一点。所以使用https传输的数据相对来说是安全的,但是事无绝对,我们只能说是相对安全的,在木马病毒盛行的今天有可能数据在被加密之前数据就已经被窃取了。当然这些不在我们的讨论范围之内,接下来我们来说一说数据加密。

基于java的数据加密:
我们在两个系统之间进行数据传输,如何保证我们的数据安全呢,可能首先想到的就是我们的一些加密算法,简单一些的有BASE64、MD5、SHA等等,相较更复杂一些的有DES、RSA等等。但是如果我们服务端代码被取到了呢,我们知道java的class字节码反编译很容易就能得到java源码,里面的密钥等信息也都一目了然,这时候怎么办呢。

一般我们是通过java调用C/C++编写的加密/解密代码进行加密/解密,这里又要讲一下java的Native关键字。

Native关键字一般用在方法的返回值前面,例如:

public native void sayHello();
native 用来表示这是一个java调用非java代码的接口,一个完整的调用代码为:

public class test{
   
	static{
   
		System.loadLibrary("testNative");
	}
	public native void sayHello();
	public static void main(String[] args){
   
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值