物业管理网站开发背景,做微网站的第三方登录界面,不会代码建设网站,凡客官网旗舰店可以对二进制数据#xff08;比如图片、视频#xff09;
经典算法#xff1a;
DES#xff08;密钥短被弃用了#xff09;
AES #xff08;密钥很长 很顶#xff09; 速度快#xff0c;效率高
IDEA
3DES#xff08;三重DES#xff0c;听起来就很慢和重 #xf…可以对二进制数据比如图片、视频
经典算法
DES密钥短被弃用了
AES 密钥很长 很顶 速度快效率高
IDEA
3DES三重DES听起来就很慢和重 但是应该更难破解了
至于具体的算法处理网上有许多文章。
非对称加密 原理A使用公钥 和 加密算法 对数据加密得到密文发送给BB使用私钥 和 相同的加密算法 对数据加密得到明文。
那这里有一个问题了这样看来 私钥 能解 公钥 加密的数据 那这样非对称加密和对称加密不是没什么不同吗
这个问题的答案就是 非对称加密和对称加密的本质的区分
答案如下 A 有自己的公钥和私钥假设叫 A公钥 和 A私钥 它们互逆能相互解开 对方加密的数据。 B 也有自己的公钥和私钥叫 B公钥 和 B私钥同样也是互逆 B公钥能解开B私钥加密后的数据反过来也是 对称加密中 公钥和私钥虽然互逆但是A B两端也只用 这一对 唯一的密钥。 非对称加密中A B都有了属于自己的 一对公钥密钥 A使用了B对方的公钥对数据进行了加密 这也是为什么 B能够使用自己的私钥对密文进行解密
这就是非对称加密的本质。
那么实际情况时A是怎么知道B的公钥呢
答案是在双方沟通开始前双方各自就给对方发公钥然后就能得到对方的公钥了。
就是嗨客拿到了密文 还有 公钥他也不能解出来因为密文是要用私钥去解的。
所以公钥为什么叫公钥就是人人都可以获取的。
公钥也可以解开由私钥加密的密文。但是他们不能对换的。
非对称加密用途数字签名 数字签名就是利用 公钥也能解私钥的特点 来做的
数字签名的原理是
**拿自己的私钥去对原数据进行加密别人如果能通过我的公钥对数据还原这就说明这份数据的确是我自己造的。这就是签名。
别人因为没有自己的私钥所以伪造不出同样的签名数据。**
有了数字签名与验证那么在平时的加密过程中A可以向B发送一个原数据一个数字签名B收到之后会看到了原数据。那么他会验证是不是A写的如果他拿A的公钥去解开了数字签名那么就说明的确是A这个端发的 原数据而不是别人 伪造了一份原数据。
↑ 这个做法在后面的HTTPS的TLS机制中有用到通过验证数字签名来判断对方是不是 我想要去信任的一端。
当然了上面的例子中也可以把原数据加密一下那这样带的就是 密文签名数据了。
数字签名可以使非对称加密更加安全 前面说过嗨客是可以在AB数据传输中的路上 获取密文的如果他截取了密文然后又拿到了B的公钥那么他可以伪造一份原数据“你给我转100到xxx账户”然后拿B的公钥去加密给BB收到后因为可以用自己的私钥给解开所以他会觉得这份数据就是A发的然后他就转钱了。
这绝对是很不安全的。
通过数字签名的学习我们可以做到下面几步来让数据传输更加安全 A 使用B公钥对原数据加密得到密文 用A私钥对自己信息加密得到签名。 A发送 密文签名 给B。 B通过 B的私钥来解密文 再用A的公钥来解签名 验证都Ok好保证这份数据是A传给B的。因为嗨客没有A的私钥所以嗨客不能构造A的签名。
经典算法
RSA用来签名、原文加密 都行。
DSA专门设计用来签名。签名更加快
Base64 原理将二进制数据非文本数据转换成由64个字符组成的字符串的编码算法。
64个字符是0-9 a-z A-Z / 有个专门的码表映射表 比如 M的ASCII是77对应的二进制是 01001101。
然后自己规定每6位截取一下那么就能 切成 010011 01其中 前半部分换成10进制是19在码表中对应T后半部分01换成十进制是1在码表中对应B。
那么M被Base64转换之后就变成了 TB。
其中最多只能规定6位截取一下因为码表只有64个字符如果超出6位那么多出来的码表就没有了。
当然了还有Base58。
所以Base64的本质将二进制数据转换成字符串。比如 图片、视频
所以它的用途是可以放在URL中传输、可以保存到文本文件、可以进行文本传输。
但是Base64用来加密肯定是不安全的Base64码表任何人都知道直接转过来就行了。
而且Base64完全不高效都把数据变得更长了。相反它很低效能不用就不用。
URL encoding是Base64的变种 URL可能识别不了中文所以它会将中文转换成Base64使用%来编码
压缩与解压缩 压缩的概念是 将数据换一种方式来存储以减小存储空间
解压缩则是 将压缩后的数据还原成 原来的数据
原则上压缩不算编码。
自我介绍一下小编13年上海交大毕业曾经在小公司待过也去过华为、OPPO等大厂18年进入阿里一直到现在。
深知大多数初中级安卓工程师想要提升技能往往是自己摸索成长但自己不成体系的自学效果低效又漫长而且极易碰到天花板技术停滞不前
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家初衷也很简单就是希望能够帮助到想自学提升又不知道该从何学起的朋友同时减轻大家的负担。
由于文件比较大这里只是将部分目录截图出来每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频 如果你觉得这些内容对你有帮助可以添加下面V无偿领取备注Android
总结
学习技术是一条慢长而艰苦的道路不能靠一时激情也不是熬几天几夜就能学好的必须养成平时努力学习的习惯。所以贵在坚持
最后如何才能让我们在面试中对答如流呢
答案当然是平时在工作或者学习中多提升自身实力的啦那如何才能正确的学习有方向的学习呢有没有免费资料可以借鉴为此我整理了一份Android学习资料路线 这里是一部分我工作以来以及参与过的大大小小的面试收集总结出来的一套BAT大厂面试资料专题包在这里免费分享给大家主要还是希望大家在如今大环境不好的情况下面试能够顺利一点希望可以帮助到大家。需要的小伙伴们可以点击我的GitHub获取免费领取方式 好了今天的分享就到这里如果你对在面试中遇到的问题或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己对于自己的未来还不够了解不知道给如何规划可以去我的主页加一下技术群。来看看同行们都是如何突破现状怎么学习的来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。
最后祝愿即将跳槽和已经开始求职的大家都能找到一份好的工作
片转存中…(img-HtqddmFk-1710503443697)]
好了今天的分享就到这里如果你对在面试中遇到的问题或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己对于自己的未来还不够了解不知道给如何规划可以去我的主页加一下技术群。来看看同行们都是如何突破现状怎么学习的来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。
最后祝愿即将跳槽和已经开始求职的大家都能找到一份好的工作 这些只是整理出来的部分面试题后续会持续更新希望通过这些高级面试题能够降低面试Android岗位的门槛让更多的Android工程师理解Android系统掌握Android系统。喜欢的话麻烦点击一个喜欢再关注一下~