需求是會(huì)員從C#遷移到了JAVA,但是舊的密碼是BASE64(HMACSHA512(value))加密的,用戶體驗(yàn)不變,所以java端也要實(shí)現(xiàn)這個(gè),可我生成的這么都不對(duì)。c#:PBKDF2C#生成的類似:zYKcuNTKMZzvmCptYkXbbfCXkwUiQKf/6qZi/XRNNxSf08pMRcrBO34cj9DMyoQCFOLnbQgDz9aalz8yjbQwng==而我生成的:YjA4OTc2ZDJkNmNhYTk4OGJmODI0M2M1OWExZTJjYjMwMmMzNzFmYzA0ZTA2ZTE0ZjkyNGQyNWNiNGI2MTA1ZDc1YTUzNTJjZjI1YjY4ODlhY2JhMTk2M2MwNzcyODE4MjQzZmY3YzczZjMzY2I2OWEyMGIyM2ZkYmNiOTAwOGY=哪有問題?下面是代碼importjavax.crypto.spec.SecretKeySpec;importjavax.crypto.Mac;importjava.util.Base64;publicclassHMAC{/***定義加密方式*MAC算法可選以下多種算法**HmacMD5*HmacSHA1*HmacSHA256*HmacSHA384*HmacSHA512**/privatestaticfinalStringHMAC_SHA1="HmacSHA512";/***生成簽名數(shù)據(jù)_HmacSHA1加密**@paramdata*待加密的數(shù)據(jù)*@paramkey*加密使用的key*/publicstaticStringgetSignature(Stringdata,Stringkey)throwsException{byte[]keyBytes=key.getBytes();//根據(jù)給定的字節(jié)數(shù)組構(gòu)造一個(gè)密鑰。SecretKeySpecsigningKey=newSecretKeySpec(keyBytes,HMAC_SHA1);Macmac=Mac.getInstance(HMAC_SHA1);mac.init(signingKey);byte[]rawHmac=mac.doFinal(data.getBytes());StringhexBytes=byte2hex(rawHmac);returnhexBytes;}privatestaticStringbyte2hex(finalbyte[]b){Stringhs="";Stringstmp="";for(intn=0;n
在線等,挺急的!JAVA BASE64 HMACSHA512加密
蕪湖不蕪
2019-10-10 18:00:43