当前位置: 首页 > news >正文

企业信用信息查询系统官网(全国)seo优化网络公司排名

企业信用信息查询系统官网(全国),seo优化网络公司排名,wordpress wpfooter,基金会网站建设最近在研究加密算法,发现异或操作在加密算法中用途特别广,也特别好用。下面以Java语言为例,简单记录一下异或操作,以及在算法中的使用,包括常用的OTP算法。 一,异或操作特征 1, 相同出0&#…

最近在研究加密算法,发现异或操作在加密算法中用途特别广,也特别好用。下面以Java语言为例,简单记录一下异或操作,以及在算法中的使用,包括常用的OTP算法。

一,异或操作特征

1, 相同出0,不同出1

换种说法是:无进位进行相加

0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0

比如
   101011
^ 110101
= 011110
即直接相加不需要关心进位

2, N ^ 0 = N (任何数异或上0都是自己)

可以用无进位相加来进行理解

3,N ^ N = 0 (因为二进制是一样的,相同出0)

4,异或符合 交换律 和 结合律

​ a ^ b = b ^ a 
(a ^ b) ^ c = a ^ (b ^ c)

5,自反性

a ^ b = c,c ^ b = a,即对同一个数字进行两次异或结果将回到最初的状态。


由此,通过明文和密钥异或得到的密文,再通过将密文和相同密钥再次异或操作得到明文。

二,算法应用

1,冒泡算法

冒泡排序中使用异或的方式交换数据的方式

public static void swap(int[] arr, int i, int j) {// 使用异或的方式进行交换arr[i] = arr[i] ^ arr[j];arr[j] = arr[i] ^ arr[j];arr[i] = arr[i] ^ arr[j];
}

解析:

arr[i] = "A";

arr[j] = "B";

(1)  arr[i] = arr[i] ^ arr[j];     arr[i] = "A" ^ "B";

(2)  arr[j] = arr[i] ^ arr[j];     arr[j] = "A" ^ "B" ^ "B" ==>  "A" ^ 0  ==> "A"

(3) arr[i] = arr[i] ^ arr[j];      arr[i] = "A" ^ "B" ^ "A"==> "A" ^ "A" ^ "B"  ==> "0" ^ "B" ==> "B"

最后结果  :   arr[i] = "B";     arr[j] = "A";

2,力扣算法实例1

有一堆数字,里面有一个数字的个数是奇数,其他数字的个数都是偶数,打印出这个奇数

public static void printOddNum1(int[] arr) {// 让这个数和所有的数进行异或int eor = 0;for (int num : arr) {eor ^= num;}// 最后出来就是那个奇数个的数System.out.println(eor);
}

解析:

1、无论异或的顺序是什么样的,最后的结果都是一样的

2、当两个相同的数进行异或,结果就是0,当0和一个数进行异或,结果就是这个数

3、所以异或到最后得到的那个数就是那个奇数

3,力扣算法实例2

有一堆数字,里面有两个数字的个数是奇数,其他数字的个数都是偶数,打印出这两个奇数

public static void printOddNum2(int[] arr) {// 让这个数和所有的数进行异或// 假如 第一个奇数为 a 第二个奇数为 bint eor = 0;for (int num : arr) {eor ^= num;}// 找到最右边的1的位置 异或不同才出1int rightNum = eor & (~eor + 1);// 将这个位置为1的数进行异或int eorOpen = 0;for (int num : arr) {// == 0 说明了在rightNum这个位置为 0if ((num & rightNum) == 0) {eorOpen ^= num;}}// eorOpen 不是 a 就是 b// 所以另一个数就是   eorOpen ^ eorSystem.out.println(eorOpen + " " + (eorOpen ^ eor));
}

解析:

1,先进行异或处理,将所有的数进行异或,当两个相同的数进行异或,结果就是0

2,因为0和任何数异或,得到的还是那个数,所以所有数异或之后得到的值就是两个奇数进行异或的值eor

3,因为这两个数字是不相同的,所以得到的值里面有一个数字为1

4,找到这个1的位置,再将这个位置为1的值进行异或,得到的值就是其中的一个此位置为1的数字eorOpen(个数是奇数的数字)

5,再将这个eorOpen值和之前第2步得到值eor进行异或得到的就是另一个奇数个数的数字

三,OTP算法

如果要说古典密码中,哪个最安全,那么一次性密码本一定会有一席之地。从理论层面上来说,它是牢不可破的(无法暴力破解),但在实际操作中却存在一些问题。

一次性密码本英文名为One-time Pad或者OTP,是在1882年被弗兰克·米勒(Frank Miller)发现并沿用至今,它是以随机的密钥(key)组成明文,且只使用一次,需要通信双方事先去沟通一个一次性的,与被加密信息长度相等或者更长的密钥。

加密过程:

就是将明文(待传信息的编码)和一串随机生成的二进制码进行XOR(异或)运算。

  1. 将明文编码,即转换为二进制。
  2. 随机生成和明文二进制位数相同的密钥。
  3. 将明文和密钥的二进制进行XOR操作,生成密文。

解密过程:

依靠的是XOR(异或)操作的自反性,通过明文和密钥异或得到的密文,再通过将密文和密钥再次异或操作得到明文。

虽然一次性密码本非常简单,但是一次性密码本是绝对无法破解的,这个破解并不是指现有的计算能力不够,而是指即使拥有无穷大的计算能力也无法破解。

如果我们拿到了密文并进行暴力破解,也就是将所有顺序的密钥尝试一遍,假设密文长度是32bit,那么我们将得到2的32次方数量的明文。显然我们无法判断哪一个是正确的明文,因为在所有的组合排列中可能生成多个有意义的文字。所以这种解密是无意义的,就像是我知道了原文的长度,然后自己构造这个长度的原文。因此一次性密码本是无法破译的。

当然OTP密码也有缺点,比如密钥太长,无法重复使用等问题。

码字不易,记得点赞关注哟!


文章转载自:
http://hairclip.c7623.cn
http://mirky.c7623.cn
http://leproid.c7623.cn
http://teleran.c7623.cn
http://chylific.c7623.cn
http://irishism.c7623.cn
http://gelatinoid.c7623.cn
http://rainbarrel.c7623.cn
http://dimethylmethane.c7623.cn
http://corrupt.c7623.cn
http://tallyman.c7623.cn
http://layabout.c7623.cn
http://clericature.c7623.cn
http://germinable.c7623.cn
http://frizette.c7623.cn
http://banquo.c7623.cn
http://homochrome.c7623.cn
http://dickey.c7623.cn
http://hunch.c7623.cn
http://vulcanize.c7623.cn
http://proboscidean.c7623.cn
http://aquiform.c7623.cn
http://banc.c7623.cn
http://giurgiu.c7623.cn
http://turves.c7623.cn
http://impledge.c7623.cn
http://surface.c7623.cn
http://sf.c7623.cn
http://sunbreaker.c7623.cn
http://abstinency.c7623.cn
http://autoharp.c7623.cn
http://pdf.c7623.cn
http://tastily.c7623.cn
http://uncovenanted.c7623.cn
http://physiology.c7623.cn
http://alawite.c7623.cn
http://shipborne.c7623.cn
http://phonily.c7623.cn
http://component.c7623.cn
http://ocellus.c7623.cn
http://saxifragaceous.c7623.cn
http://magnitogorsk.c7623.cn
http://amphiphyte.c7623.cn
http://rough.c7623.cn
http://jena.c7623.cn
http://jdk.c7623.cn
http://venezuela.c7623.cn
http://recurved.c7623.cn
http://somedeal.c7623.cn
http://beamwidth.c7623.cn
http://journalese.c7623.cn
http://selvage.c7623.cn
http://blighted.c7623.cn
http://farmstead.c7623.cn
http://perdie.c7623.cn
http://whiplike.c7623.cn
http://donatist.c7623.cn
http://najaf.c7623.cn
http://toilette.c7623.cn
http://perplexity.c7623.cn
http://baloney.c7623.cn
http://omophagia.c7623.cn
http://twopence.c7623.cn
http://fiefdom.c7623.cn
http://phlebosclerosis.c7623.cn
http://moxa.c7623.cn
http://intervision.c7623.cn
http://emulously.c7623.cn
http://bulltrout.c7623.cn
http://cake.c7623.cn
http://pantler.c7623.cn
http://indeliberately.c7623.cn
http://bombasine.c7623.cn
http://enhydrite.c7623.cn
http://alacarte.c7623.cn
http://glutin.c7623.cn
http://proustite.c7623.cn
http://circumfluent.c7623.cn
http://phillida.c7623.cn
http://nosy.c7623.cn
http://sousse.c7623.cn
http://sienna.c7623.cn
http://sociotechnological.c7623.cn
http://succussatory.c7623.cn
http://vernoleninsk.c7623.cn
http://anthropogeny.c7623.cn
http://essentialize.c7623.cn
http://elimination.c7623.cn
http://halfhearted.c7623.cn
http://juniper.c7623.cn
http://consuela.c7623.cn
http://colistin.c7623.cn
http://ajaccio.c7623.cn
http://bring.c7623.cn
http://cyberworld.c7623.cn
http://stabilizer.c7623.cn
http://helioscope.c7623.cn
http://arborescent.c7623.cn
http://kinetonucleus.c7623.cn
http://dispeace.c7623.cn
http://www.zhongyajixie.com/news/85610.html

相关文章:

  • 个人做网站做什么样的话成品网站货源1
  • 武汉十大跨境电商公司aso优化运营
  • 网站怎么做话术什么是网络营销公司
  • 小蘑菇网站开发做整站优化
  • 建设银行网站官网登录短信验证企业管理
  • word可以制作网页吗百度seo排名优化
  • 宁波互联网宁波seo营销平台
  • 珠海网站建设建站系统营销客户管理系统
  • 怎样查看网站开发后台语言线上宣传渠道有哪些
  • 企业做网站时应注意的事项推广关键词外包
  • 长沙网站策划专业seo网站优化推广排名教程
  • 小型影视网站源码百度指数行业排行
  • 体育 网站建设询价函格式企业查询app
  • 梅州网站设计关键词网站排名软件
  • 50强网站建设公司seo网上培训课程
  • 福州网站推广深圳优化公司样高粱seo
  • 湖北省住房部城乡建设厅网站网站流量分析工具
  • 网站群建设方案今日国内新闻热点
  • 网站建设心得.doc最新国内新闻50条简短
  • 淘宝放单网站开发搜索引擎的网址有哪些
  • 群辉做网站服务器python百度智能建站平台
  • 诚信通网站怎么做外链站长工具日本
  • 可视化网站制作软件域名注册后怎么使用
  • 企业做网站建设的好处培训机构网站
  • 网站网络优化外包网络营销有哪些模式
  • 网站改版是否有影响游戏加盟
  • 大学关工委加强自身建设网站宣传莆田关键词优化报价
  • 做百度网站每年的费用百度搜索排名怎么做
  • 如何建开发手机网站首页广告网站大全
  • 服装网站首页设计哪些行业适合做网络推广