好吧,不喜欢啰里啰嗦,直接进入主题吧。当我们打开一个页面(Activity)时,在onCreate()方法中调用setContentView(layoutID),就会发现我们...
好吧,不喜欢啰里啰嗦,直接进入主题吧。当我们打开一个页面(Activity)时,在onCreate()方法中调用setContentView(layoutID),就会发现我们...
OkHttp[https://github.com/square/okhttp]已经很出名,这里就不啰嗦了,直接进入主题,以下代码演示均使用Kotlin。OkHttp版本:4...
以下内容基于Java 8分析和理解。 Java Platform Standard Edition 8 Documentation 官网文档地址:https://docs.o...
前言 什么是约束布局(ConstraintLayout) 我们可以理解为增强版/升级版的相对布局(RelativeLayout)。 Android Studio 从版本2.3...
首先准备2个包名和1个地址: Google身份验证器包名:com.google.android.apps.authenticator2 GooglePlay Store 包名...
线程间的交互和通信 一个线程启动另一个线程public static void main(String[] args){ new Thread().start();}主线程...
一. 多线程 1. 分类 A. Thread 最常用的开启新线程的方式,最终的调用是由Java虚拟机根据不同平台来执行不同的调用,因为start0最终是一个native方法。...
先确保已经成功安装了PyCharm,安装成功之后就有PyCharm的文件夹了。
Mac Pycharm 打不开的解决方法(亲测有效)不废话,直接进入主题: 打开访达,切到应用程序,找到Pycharm.app,右键->显示包内容,打开Contents/MacOS/ 打开终端,cd 到Contents/Mac...
Path用途: 按照路径的规则在路径上绘制自定义图形 在使用Path之前我们需要先了解Path的填充规则和绘制方向. 一. Path的填充规则: FillType.WINDI...
参考文档 市场上常见的插件 1.GsonFormat 快速将json字符串转换成一个Java Bean,免去我们根据json字符串手写对应Java Bean的过程。使用方法:...
原理就不再做说明了,相信了解自定义View的都可以看明白.一. 代码部分 二.自定义属性 三.xml中使用
不客气,能帮到就好。那个找不到路径的问题我更新上去了。
Mac Pycharm 打不开的解决方法(亲测有效)不废话,直接进入主题: 打开访达,切到应用程序,找到Pycharm.app,右键->显示包内容,打开Contents/MacOS/ 打开终端,cd 到Contents/Mac...
当我们使用Vim编辑器打开一个文件时,怎样退出并保存呢? 终端输入命令vim <filename> 可以使用Vim编辑器打开一个文件,然后输入i可以进行编辑.以下命令的使用是...
不废话,直接进入主题: 打开访达,切到应用程序,找到Pycharm.app,右键->显示包内容,打开Contents/MacOS/ 打开终端,cd 到Contents/Mac...
@整人君子 对,你说的这种情况是存在的,谁都可以拿到公钥进行数据伪造或者串改,要怎么解决?
这里就要用到数字签名.首先要明白加密只是为了让别人看不懂数据,防偷窥的作用,但并不能保证数据来源的真实性, 换句话说就是B怎么知道这个数据是A发过来的呢,而不是其他人呢?而签名的作用就是防伪造/串改.
A用B的公钥对数据进行加密,并使用自己的私钥对数据进行签名,将加密后的密文和签名后的数据一并发送给B,即使中间者拦截到了数据,进行伪造或者串改, 但是他没有A的私钥,不能进行数字签名,这样B收到数据后会先对签名进行校验.因为只有A有自己的私钥,只要B可以用A的公钥解开签名,就可以证明这个数据是来自A,如果B用A的公钥解不开数据,则此次通信传输的数据来源是不真实的,或者说是伪造串改后的数据,B可以完全不处理.这样就可以做到数据防伪造.这就是加密和签名的最简单应用模型.
但是实际应用中不是这样的,因为对源数据进行签名,中间者可以用公钥解开签名,就可以看到源数据了,这样就矛盾了,本来想要对数据进行防偷窥的,结果解开签名就可以看到源数据了,这样肯定是不行的.
解决办法简单来说就是对原数据进行Hash(通常很小),然后对Hash值进行签名.这样中间者把签名解出来之后看到的是数据的摘要(Hash),他也不知道源数据是什么样的,这里只是简单的说下这种应用模型.
非对称加密定义1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是...
axure sketch ppt 交互文档什么样? 封面: 修订记录 需求分析: 信息架构: 流程设计: 流程说明: 交互控件罗列: 总结: 流程1:一个页面说清楚一件事,每...
非对称加密的公钥私钥是可以互解的.
B如果需要A发送信息给自己,则B需要生成一对公钥和私钥, 然后将公钥给A, 传输公钥的过程中就会被中间者看到公钥,这样中间攻击者也持有了B的公钥.当A通过B的公钥加密后,这个密文是只有B才可以解开的,因为只有B有私钥, 即使中间攻击者拦截到了A通过公钥加密的密文,他也解不了, 因为他只有公钥.但是,如果B通过私钥将数据加密后传输给A, 这个时候中间攻击者就可以通过B公布的公钥将密文解开.所以这样是不安全的.那怎么办呢?如果B想发送数据给A,那就只需要A也生成一对公钥和私钥, 然后将公钥公布给B, 即使中间攻击者也拿到了A的公钥也没关系,因为B发送给A的数据是A的公钥进行加密的, 只有A的私钥才可以解开,这样就可以保证安全的情况下进行互相通信了.这就是为什么A和B需要互相持有对方的公钥了.
而且用私钥加密数据的情况叫数字签名,是非对称加密延伸出的一种用途,也是非对称加密重要意义所在.
非对称加密定义1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是...