最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決JAVA非對稱加密不同系統(tǒng)加密結(jié)果不一致的問題

 更新時(shí)間:2020年10月07日 16:25:31   作者:烈軍  
這篇文章主要介紹了解決JAVA非對稱加密不同系統(tǒng)加密結(jié)果不一致的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

最近在做一個(gè)項(xiàng)目,需要用到非對稱加密,但是出現(xiàn)一個(gè)很詭異的情況,本地開發(fā)環(huán)境是Windows環(huán)境,測試環(huán)境是Linux環(huán)境,出現(xiàn)一個(gè)問題, 那就是本地環(huán)境與開發(fā)環(huán)境同一個(gè)私鑰字符串加密加密同一個(gè)信息,得到的加密結(jié)果不一樣。

經(jīng)過查詢網(wǎng)絡(luò)得知,這是由于填充的規(guī)則不同導(dǎo)致。

原來的加密的部分代碼

byte[] keyBytes = Base64.decodeBase64(privateKey);
PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(keyBytes);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
Key privateK = keyFactory.generatePrivate(pkcs8KeySpec) ;    
Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm());
cipher.init(Cipher.DECRYPT_MODE, privateK);

修改后的加密的部分代碼

byte[] keyBytes = Base64.decodeBase64(privateKey);
PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(keyBytes);
KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);
Key privateK = keyFactory.generatePrivate(pkcs8KeySpec);
//  Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm());
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.ENCRYPT_MODE, privateK);

因此差異部分就是Cipher cipher的獲取存在差異導(dǎo)致不同系統(tǒng)下同一秘鑰,同一信息加密結(jié)果不一致

補(bǔ)充知識(shí):Java RSA3加密時(shí)因編碼不同導(dǎo)致結(jié)果不同

最近遇到一個(gè)問題,使用RSA3加密及驗(yàn)證時(shí)候,因?yàn)槲曳脚c客戶方工程的編碼格式不同,導(dǎo)致我方使用私鑰加密后,客戶使用公鑰解密失敗。

最后問題定位到src.getBytes()代碼,因我方工程使用GBK編碼,src.getBytes()執(zhí)行時(shí)獲取默認(rèn)編碼為GBK(即src.getBytes("GBK")),而客戶方工程使用UTF-8編碼,解密執(zhí)行src.getBytes()時(shí)獲取默認(rèn)編碼為UTF-8(即src.getBytes("UTF-8"))。造成解密校驗(yàn)失敗。

解決方法:加密時(shí)設(shè)置UTF-8編碼格式—src.getBytes("UTF-8",如下:

測試(file的默認(rèn)編碼為GBK):

以上這篇解決JAVA非對稱加密不同系統(tǒng)加密結(jié)果不一致的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 分享Spring?Cloud?OpenFeign?的五個(gè)優(yōu)化技巧

    分享Spring?Cloud?OpenFeign?的五個(gè)優(yōu)化技巧

    這篇文章主要分享的是Spring?Cloud?OpenFeign?的五個(gè)優(yōu)化技巧,OpenFeign?是?Spring?官方推出的一種聲明式服務(wù)調(diào)用和負(fù)載均衡組件,更多相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-05-05
  • 每日六道java新手入門面試題,通往自由的道路--線程池

    每日六道java新手入門面試題,通往自由的道路--線程池

    這篇文章主要為大家分享了最有價(jià)值的6道線程池面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,對hashCode方法的設(shè)計(jì)、垃圾收集的堆和代進(jìn)行剖析,感興趣的小伙伴們可以參考一下
    2021-06-06
  • SpringBoot配置的加載流程詳細(xì)分析

    SpringBoot配置的加載流程詳細(xì)分析

    了解內(nèi)部原理是為了幫助我們做擴(kuò)展,同時(shí)也是驗(yàn)證了一個(gè)人的學(xué)習(xí)能力,如果你想讓自己的職業(yè)道路更上一層樓,這些底層的東西你是必須要會(huì)的,這篇文章主要介紹了SpringBoot配置的加載流程
    2023-01-01
  • mybatis參數(shù)String與Integer類型的判斷方式

    mybatis參數(shù)String與Integer類型的判斷方式

    這篇文章主要介紹了mybatis參數(shù)String與Integer類型的判斷方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • javaweb中Filter(過濾器)的常見應(yīng)用

    javaweb中Filter(過濾器)的常見應(yīng)用

    這篇文章主要介紹了javaweb中Filter的常見應(yīng)用,過濾器的使用方法,感興趣的小伙伴們可以參考一下
    2015-12-12
  • Java使用ES?Client?調(diào)用滾動(dòng)查詢及Elasticsearch滾動(dòng)查詢Scrolling機(jī)制

    Java使用ES?Client?調(diào)用滾動(dòng)查詢及Elasticsearch滾動(dòng)查詢Scrolling機(jī)制

    Elasticsearch提供了一種稱為"滾動(dòng)查詢"(Scrolling)的機(jī)制,用于處理大型數(shù)據(jù)集的分頁查詢,這篇文章給大家介紹滾動(dòng)查詢的一般步驟及Java使用ESClient調(diào)用滾動(dòng)查詢的方法,感興趣的朋友一起看看吧
    2023-08-08
  • Netty分布式獲取異線程釋放對象源碼剖析

    Netty分布式獲取異線程釋放對象源碼剖析

    這篇文章主要為大家介紹了Netty分布式獲取異線程釋放的對象源碼剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-03-03
  • MyBatis新增數(shù)據(jù)時(shí)自增id的兩種寫法小結(jié)

    MyBatis新增數(shù)據(jù)時(shí)自增id的兩種寫法小結(jié)

    本文介紹了在MyBatis中配置自增ID的兩種方法:一種是通過在Mapper文件中設(shè)置useGeneratedKeys和keyProperty,另一種是使用selectKey標(biāo)簽,批量插入時(shí),同樣采用useGeneratedKeys標(biāo)簽,感興趣的可以了解一下
    2024-09-09
  • SpringCloud用Zookeeper搭建配置中心的方法

    SpringCloud用Zookeeper搭建配置中心的方法

    本篇文章主要介紹了SpringCloud用Zookeeper搭建配置中心的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • Spring Boot 2.7.6整合redis與低版本的區(qū)別

    Spring Boot 2.7.6整合redis與低版本的區(qū)別

    這篇文章主要介紹了Spring Boot 2.7.6整合redis與低版本的區(qū)別,文中補(bǔ)充介紹了SpringBoot各個(gè)版本使用Redis之間的區(qū)別實(shí)例講解,需要的朋友可以參考下
    2023-02-02

最新評論

双峰县| 三江| 台州市| 永春县| 搜索| 嵩明县| 滨海县| 沙田区| 马山县| 剑川县| 陵川县| 海门市| 始兴县| 新化县| 毕节市| 小金县| 泸溪县| 修武县| 华安县| 锡林浩特市| 汤原县| 微山县| 保靖县| 成武县| 彭泽县| 临泉县| 新干县| 门源| 铁岭市| 棋牌| 昌平区| 阳西县| 偏关县| 阜新| 安宁市| 新余市| 漠河县| 宿松县| 云和县| 定结县| 扶绥县|