游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

快速了解常用的对称加密算法,再也不用担心面试官的刨根问底

  面试官:说一说你常用的加密算法有哪些?
  加密算法通常被分为两种:对称加密和非对称加密。其中,对称加密算法在加密和解密时使用的密钥相同;非对称加密算法在加密和解密时使用的密钥不同,分为公钥和私钥。此外,还有一类叫做消息摘要算法,是对数据进行摘要并且不可逆的算法。
  这次我们了解一下对称加密算法。对称加密算法
  对称加密算法在加密和解密时使用的密钥相同,或是使用两个可以简单地相互推算的密钥。在大多数的对称加密算法中,加密和解密的密钥是相同的。
  它要求双方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送的信息进行解密,这也是对称加密算法的主要缺点之一。
  常见的对称加密算法有:DES算法、3DES算法、AES算法。DES算法
  DES算法(DataEncryptionStandard)是一种常见的分组加密算法。
  面试官:什么是分组加密算法?
  分组加密算法是将明文分成固定长度的组,每一组都采用同一密钥和算法进行加密,输出也是固定长度的密文。
  由IBM公司在1972年研制,1976年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),随后在国际上广泛流传开来。
  在DES算法中,密钥固定长度为64位。明文按64位进行分组,分组后的明文组和密钥按位置换或交换的方法形成密文组,然后再把密文组拼装成密文。
  密钥的每个第八位设置为奇偶校验位,也就是第8、16、24、32、40、48、56、64位,所以密钥的实际参与加密的长度为56位。
  我们用Java写个例子:importjavax。crypto。Cipher;importjavax。crypto。SecretKey;importjavax。crypto。spec。SecretKeySpec;importjava。nio。charset。Charset;importjava。nio。charset。StandardCharsets;importjava。security。GeneralSecurityException;importjava。util。Base64;publicclassDesUtil{privatestaticfinalStringDESDES;privatestaticfinalCharsetCHARSETStandardCharsets。UTF8;加密paraminput明文paramkey密钥return密文throwsGeneralSecurityExceptionpublicstaticStringencrypt(Stringinput,Stringkey)throwsGeneralSecurityException{CiphercipherCipher。getInstance(DES);SecretKeykeySpecnewSecretKeySpec(key。getBytes(CHARSET),DES);cipher。init(Cipher。ENCRYPTMODE,keySpec);byte〔〕datacipher。doFinal(input。getBytes(CHARSET));returnBase64。getEncoder()。encodeToString(data);}解密paraminput密文paramkey密钥return明文throwsGeneralSecurityExceptionpublicstaticStringdecrypt(Stringinput,Stringkey)throwsGeneralSecurityException{CiphercipherCipher。getInstance(DES);SecretKeykeySpecnewSecretKeySpec(key。getBytes(CHARSET),DES);cipher。init(Cipher。DECRYPTMODE,keySpec);byte〔〕datacipher。doFinal(Base64。getDecoder()。decode(input));returnnewString(data,CHARSET);}publicstaticvoidmain(String〔〕args)throwsGeneralSecurityException{Stringmsg我喜欢你,可以做我女朋友吗?;StringkeyOneMore;System。out。println(加密前:msg);StringpwdDesUtil。encrypt(msg,key);System。out。println(加密后:pwd);System。out。println(解密后:DesUtil。decrypt(pwd,key));}}
  运行结果如下:加密前:我喜欢你,可以做我女朋友吗?加密后:i5LZ5aJMrlgNPr5IQm87Q14k0kmDLFIPnJmtrGAxBHG0SivGrqCrc3vXjZoCBm解密后:我喜欢你,可以做我女朋友吗?
  DES现在已经不是一种安全的加密方法,主要因为它使用的密钥过短,很容易被暴力破解。3DES算法
  3DES算法(TripleDataEncryptionAlgorithm)是DES算法的升级版本,相当于是对明文进行了三次DES加密。
  由于计算机运算能力的增强,DES算法由于密钥长度过低容易被暴力破解;3DES算法提供了一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。
  在DES算法中,密钥固定长度为192位。在加密和解密时,密钥会被分为3个64位的密钥。
  面试官:3DES算法加密和解密的过程是什么样子的?
  加密过程如下:使用第一个密钥加密明文。使用第二个密钥解密上一步的结果。使用第三个密钥加密上一步的结果。
  解密过程如下:使用第三个密钥解密明文。使用第二个密钥加密上一步的结果。使用第一个密钥解密上一步的结果。
  我们用Java写个例子:importjavax。crypto。Cipher;importjavax。crypto。SecretKey;importjavax。crypto。spec。SecretKeySpec;importjava。nio。charset。Charset;importjava。nio。charset。StandardCharsets;importjava。security。GeneralSecurityException;importjava。util。Base64;publicclassTripleDesUtil{privatestaticfinalStringDESedeDESede;privatestaticfinalCharsetCHARSETStandardCharsets。UTF8;加密paraminput明文paramkey密钥return密文throwsGeneralSecurityExceptionpublicstaticStringencrypt(Stringinput,Stringkey)throwsGeneralSecurityException{CiphercipherCipher。getInstance(DESede);SecretKeykeySpecnewSecretKeySpec(key。getBytes(CHARSET),DESede);cipher。init(Cipher。ENCRYPTMODE,keySpec);byte〔〕datacipher。doFinal(input。getBytes(CHARSET));returnBase64。getEncoder()。encodeToString(data);}解密paraminput密文paramkey密钥return明文throwsGeneralSecurityExceptionpublicstaticStringdecrypt(Stringinput,Stringkey)throwsGeneralSecurityException{CiphercipherCipher。getInstance(DESede);SecretKeykeySpecnewSecretKeySpec(key。getBytes(CHARSET),DESede);cipher。init(Cipher。DECRYPTMODE,keySpec);byte〔〕datacipher。doFinal(Base64。getDecoder()。decode(input));returnnewString(data,CHARSET);}publicstaticvoidmain(String〔〕args)throwsGeneralSecurityException{Stringmsg我喜欢你,可以做我女朋友吗?;StringkeyOneMore12345678One。More;System。out。println(加密前:msg);StringpwdTripleDesUtil。encrypt(msg,key);System。out。println(加密后:pwd);System。out。println(解密后:TripleDesUtil。decrypt(pwd,key));}}
  运行结果如下:加密前:我喜欢你,可以做我女朋友吗?加密后:qZWtjDGoxIjmd30he0oZ3XLjJhhACedaXaj12Zi3WtlqzZzJmQuScjKuZoONF解密后:我喜欢你,可以做我女朋友吗?
  虽然3DES算法在安全性上有所提升,但是因为使用了3次DES算法,加密和解密速度比较慢。AES算法
  AES(AdvancedEncryptionStandard,高级加密标准)主要是为了取代DES加密算法的,虽然出现了3DES的加密方法,但由于它的加密时间是DES算法的3倍多,密钥位数还是不能满足对安全性的要求。
  1997年1月2号,美国国家标准与技术研究院(NIST)宣布希望征集高级加密标准,用以取代DES。全世界很多密码工作者都提交了自己设计的算法。经过甄选流程,高级加密标准由美国国家标准与技术研究院于2001年11月26日发布于FIPSPUB197,并在2002年5月26日成为有效的标准。
  该算法为比利时密码学家JoanDaemen和VincentRijmen所设计,结合两位作者的名字,以Rijndael为名投稿高级加密标准的甄选流程。
  面试官:AES算法的密钥长度是固定的吗?
  AES算法的密钥长度是固定,密钥的长度可以使用128位、192位或256位。
  AES算法也是一种分组加密算法,其分组长度只能是128位。分组后的明文组和密钥使用几种不同的方法来执行排列和置换运算形成密文组,然后再把密文组拼装成密文。
  我们用Java写个例子:importjavax。crypto。Cipher;importjavax。crypto。SecretKey;importjavax。crypto。spec。SecretKeySpec;importjava。nio。charset。Charset;importjava。nio。charset。StandardCharsets;importjava。security。GeneralSecurityException;importjava。util。Base64;publicclassAesUtil{privatestaticfinalStringAESAES;privatestaticfinalCharsetCHARSETStandardCharsets。UTF8;加密paraminput明文paramkey密钥return密文throwsGeneralSecurityExceptionpublicstaticStringencrypt(Stringinput,Stringkey)throwsGeneralSecurityException{CiphercipherCipher。getInstance(AES);SecretKeykeySpecnewSecretKeySpec(key。getBytes(CHARSET),AES);cipher。init(Cipher。ENCRYPTMODE,keySpec);byte〔〕datacipher。doFinal(input。getBytes(CHARSET));returnBase64。getEncoder()。encodeToString(data);}解密paraminput密文paramkey密钥return明文throwsGeneralSecurityExceptionpublicstaticStringdecrypt(Stringinput,Stringkey)throwsGeneralSecurityException{CiphercipherCipher。getInstance(AES);SecretKeykeySpecnewSecretKeySpec(key。getBytes(CHARSET),AES);cipher。init(Cipher。DECRYPTMODE,keySpec);byte〔〕datacipher。doFinal(Base64。getDecoder()。decode(input));returnnewString(data,CHARSET);}publicstaticvoidmain(String〔〕args)throwsGeneralSecurityException{Stringmsg我喜欢你,可以做我女朋友吗?;StringkeyOneMore12345678One。More87654321;System。out。println(加密前:msg);StringpwdAesUtil。encrypt(msg,key);System。out。println(加密后:pwd);System。out。println(解密后:AesUtil。decrypt(pwd,key));}}
  运行结果如下:加密前:我喜欢你,可以做我女朋友吗?加密后:dT29xXXpPTO3OMuDw1ASyUaNfJ1KendNUJ84h2KZhqRDNfiO4hAQjOXMCoN4解密后:我喜欢你,可以做我女朋友吗?
  AES算法是目前应用最广泛的对称加密算法。总结
  对称加密算法在加密和解密时使用的密钥相同,常见的对称加密算法有:DES算法、3DES算法、AES算法。
  由于安全性低、加密解密效率低,DES算法和3DES算法是不推荐使用的,AES算法是目前应用最广泛的对称加密算法。
  竟然已经看到这里了,你我定是有缘人,留下你的点赞和关注,他日必成大器。
  作者:万猫学社
  出处:https:www。cnblogs。comheihaozip15953670。html

萨朗斯通挽着摩纳哥亲王的手赴宴,王妃回了个中老年表情包瓜友们,摩纳哥王室大型连续剧《在逃王妃》又更新啦!上回我们说到,王妃夏琳从今年3月回了南非之后,就再也没回过摩纳哥。理由正当到令人无法反驳:治病。无论是……realme真我GTNeo2全方位解析,顶尖配置与实惠售价兼今天下午,真我GTNeo2的发布会如约召开,作为realme旗下产品,该机除了拥有极为强悍的硬件之外,在售价方面也非常的实惠,在如今这个内卷的手机市场里依旧足够能打,接下来我就……买有源音箱不知选哪款?看看米国总统专用品牌的热推款说到有源音箱,不少老烧肯定是看不上眼的,但实际上就如耳机发烧友看不起蓝牙耳机一样,它们都是音频市场的主力。相对于无源音响不仅要功放要前级还要占地方,现在的有源音箱不仅有丰……科技人物贝索斯马斯克这些亿万富豪几乎不纳税?(点击上方头像关注集成侠)前阵子,2021福布斯全球富豪榜出炉。在今年的榜单中,全球亿万富豪2755人,美国依然占据了魁首的宝座,共有724名上榜者。其中,……品国酒谈数字化云徙科技走进酒业标杆国台酒业2020年10月30日,云徙科技联合CIO发展中心走进国台酒业,围绕数字化实践及智慧供应链等话题展开深入交流,探索国台酒业数字化建设之路。国台酒业是中国一线白酒企业,是茅台镇第……最全拆解风很大的全域消费者运营究竟是什么?最近,我们拆解了一个借势数字营销,四年时间做到160亿估值的故事。(点故事,给你看)故事结尾,抛出了一个理念:数据驱动全域消费者运营。其实,什么是全域消费者运营?不……捕捉精彩瞬间体验极印手机照片打印机不知道诸位值友都是如何在心目中定义文艺女青年的,而我每每在各大网络社区看到用拍立得拍照写手账的姑娘,都会忍不住在内心感叹好洋气,好好玩。然而拍立得的低性价比,使它在我心目中比几……蔚来4月交付3155台同比增181,秦力洪说受限于短期产能了出品:电动星球News作者:蟹老板本人今天下午蔚来发布了2020年4月交付情况:总计3155台,同比上涨181,环比上涨106,连续两个月环比翻番。其中ES6交付2……焕然一新更有料,广汽埃安AIONVPlus正式上市,售价17文岸青9月29日,广汽埃安AIONVPlus正式上市,本次发布会在成都麓湖水上剧院举行,现场还有开心麻花表演话剧助阵,广汽埃安副总经理肖勇友情出演,为粉丝带来了一场欢乐盛……GalaxyWatchActive和WatchActive2三星上周发布了GalaxyWatch和GalaxyWatch3的新软件更新。现在三星发布了GalaxyWatchActive和GalaxyWatchActive2的与之类似的更……女生的新生大数据985大学里占比不到40,专业选择趋同最近,各个省的大学陆陆续续开学了,我研究了一下女大学生的特点。整体数据先说总体的。总体上,女大学生数量比男大学生要多。我国是2012年开始,女大学生比例超过男大学生……GoPro10最佳拍档!TelesinVLOG蓝牙遥控自拍杆自拍热潮正席卷全球每一个角落,越来越多人喜欢用相机记录生活,好友聚会拍照留念,各类美食拍照留念,出门游玩当然也要拍照打卡,而万众期待的国庆小长假已经来临,相信很多人都已经做好了……
让人震惊第一个放水祸害全世界的居然是瑞典!瑞典是第一个向新冠肺炎疫情公开举手投降的欧洲国家,该国的这一最新政策无论对保护瑞典民众的健康还是对协同全球抗疫都是高度不负责任的。瑞典官方12日决定停止对新冠肺炎确诊病例……现代名图起售13。38万的合资中型车,1。8L自吸和1。4T入门级别家用轿车,很多时候会显得平平无奇,但韩系品牌并不想塑造得太平淡,一直以来在消费者眼中形象就是高颜值。今天要跟大家聊的是一款经典车型,名字叫做名图,虽然最近几年销量着实一……名花十二客宋代张敏叔以十二花为十二客,各赋诗一首。从此以后,十二客即成为画家画题。特别是中国南宗的国画家常以此题作画。牡丹贵客、赏客,梅花清客,菊花寿客,瑞香佳客,丁香素客,兰花幽……华为第一款WiFi6路由器AX3Pro首测开箱,穿墙确实厉害首先上开箱视频:视频加载中。。。网上预订的大部分电商都说要5。15号才能到货,我的其实4。28就到货了。而华为李小龙早就爆出已经用上了自家的AX3pro。看来又是一……AI开发者指南丨如何正确理解神经网络和深度学习?神经网络定义神经网络是一组算法,可以模仿人脑,旨在识别其模式。它们通过一种机器感知、标记或聚类原始输入来解释感官数据。他们识别的模式是包含在向量中的数字,无论是图像、声音……5个月销量翻十倍,起步163Ps带8AT,配双12。3大屏仅随着现在国产车品牌越来越丰富,现如今国内也有着不少不知名的三流汽车品牌,而在残酷的市场竞争之下,没有品牌影响力的车企会面临着更大的市场压力,不过有些汽车品牌,虽然知名度低,但凭……iOS13。4。1正式版体验分享,ApplePay支持新的公iOS13。4。1正式版体验分享今天凌晨苹果不仅开放了新的深圳通和京津冀互联互通卡,还发布了iOS13。4。1正式版。更新包大小为95MB。体验设备:iPhone1……唱吧定制款小巨蛋麦克风Q3心动版体验,送给爱唱歌的她前几天刚入手了唱吧的小巨蛋G2麦克风,女朋友说也想要一个,还要可妮兔的联名定制款,于是她有了一个,不过也好,一人一个,费事在家唱歌的时候还得抢麦。接下来就来简单说说唱吧LINE……宅家玩游戏的电竞显示器,有PG259QNR超梦Pro就够了年后的第二个小长假劳动节就要到了你的出行计划做好了吗?像小A这种宅中宅在家玩游戏那是再好不过了什么踏春、美景、小哥哥都不如享受悠闲的游戏时光来得舒……要不要多花点钱买新款车型?先别急着下结论,老款车也值得一看市面上卖的热门车型,似乎每年都会推出所谓的新款,2021款买来还没多久,2022款就要来了。这更新速度和数码产品有得一拼,每次新款推出,老款就不同程度地降价,是选择多花点钱提新……闲鱼联合天猫发起以旧换新打造变浪费为消费的绿色双11双11,不少人都会趁着优惠,考虑置办新家电、换台新手机,那么淘汰下来的旧家电和手机,你会怎么处理?今年天猫双11发布绿色消费主张,宣布将致力于打造一届低碳双11。闲鱼联合……手游体验直接拉满!联发科领先移动端游戏技术定义下一代旗舰标杆5G技术的快速演进带动了各行各业发展,想要抓住机遇,就要时刻保持对市场的敏锐嗅觉。这一点,全球知名芯片设计厂商联发科可以说是典范。在Mob研究院最新发布的《2020下半年……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网