日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 实现 pbkdf2_sha256加密验证算法

發(fā)布時間:2023/12/31 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 实现 pbkdf2_sha256加密验证算法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

import java.nio.charset.Charset; import java.security.NoSuchAlgorithmException; import java.security.spec.InvalidKeySpecException; import java.security.spec.KeySpec; import java.util.Base64; import java.util.Random;import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEKeySpec;/*** pbkdf2_sha256加密驗證算法* @author Administrator**/ import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Pbkdf2Sha256 {private static final Logger logger=LoggerFactory.getLogger(Pbkdf2Sha256.class);//默認(rèn)迭代計數(shù)為 20000private static final Integer DEFAULT_ITERATIONS = 20000;//算法名稱private static final String algorithm = "pbkdf2_sha256";/*** 獲取密文* @param password 密碼明文* @param salt 加鹽* @param iterations 迭代計數(shù)* @return*/private static String getEncodedHash(String password, String salt, int iterations) {// Returns only the last part of whole encoded passwordSecretKeyFactory keyFactory = null;try {keyFactory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");} catch (NoSuchAlgorithmException e) {logger.error("Could NOT retrieve PBKDF2WithHmacSHA256 algorithm",e);}KeySpec keySpec = new PBEKeySpec(password.toCharArray(), salt.getBytes(Charset.forName("UTF-8")), iterations, 256);SecretKey secret = null;try {secret = keyFactory.generateSecret(keySpec);} catch (InvalidKeySpecException e) {logger.error("Could NOT generate secret key",e);}byte[] rawHash = secret.getEncoded();byte[] hashBase64 = Base64.getEncoder().encode(rawHash);return new String(hashBase64);}/*** 密文加鹽* @return String*/private static String getsalt(){int length = 12;Random rand = new Random();char[] rs = new char[length];for(int i = 0; i < length; i++){int t = rand.nextInt(3);if (t == 0) {rs[i] = (char)(rand.nextInt(10)+48);} else if (t == 1) {rs[i] = (char)(rand.nextInt(26)+65);} else {rs[i] = (char)(rand.nextInt(26)+97);}}return new String(rs);}/*** rand salt* iterations is default 20000* @param password* @return*/public static String encode(String password) {return encode(password, getsalt());}/*** rand salt* @param password* @return*/public static String encode(String password,int iterations) {return encode(password, getsalt(),iterations);}/*** iterations is default 20000* @param password* @param salt* @return*/public static String encode(String password, String salt) {return encode(password, salt, DEFAULT_ITERATIONS);}/*** * @param password 密碼明文* @param salt 加鹽* @param iterations 迭代計數(shù)* @return*/public static String encode(String password, String salt, int iterations) {// returns hashed password, along with algorithm, number of iterations and saltString hash = getEncodedHash(password, salt, iterations);return String.format("%s$%d$%s$%s", algorithm, iterations, salt, hash);}/*** 校驗密碼是否合法* @param password 明文* @param hashedPassword 密文* @return*/public static boolean verification(String password, String hashedPassword) {// hashedPassword consist of: ALGORITHM, ITERATIONS_NUMBER, SALT and// HASH; parts are joined with dollar character ("$")String[] parts = hashedPassword.split("\\$");if (parts.length != 4) {// wrong hash formatreturn false;}Integer iterations = Integer.parseInt(parts[1]);String salt = parts[2];String hash = encode(password, salt, iterations);return hash.equals(hashedPassword);}

?

轉(zhuǎn)載于:https://my.oschina.net/haopeng/blog/2873022

總結(jié)

以上是生活随笔為你收集整理的java 实现 pbkdf2_sha256加密验证算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 伊人影视在线 | 91免费看大片 | 国产一区福利 | 四虎永久地址 | 国产一区一区 | 精品婷婷色一区二区三区蜜桃 | 人人爽夜夜爽 | 中国黄色三级视频 | 五月天一区二区 | 日韩视频一区二区三区在线播放免费观看 | 少妇性l交大片7724com | 久久久久成人精品无码 | 优优色综合 | 91黄色大片 | 中文字幕 成人 | 国产娇小hdxxxx乱 | 99国产精品一区二区 | 久久露脸国语精品国产91 | 免费91视频 | chinesepron hd videos国产91 | 69国产精品| 国产精品第一页在线观看 | 超碰97在线人人 | 国产熟妇另类久久久久 | 精品国产区| av特黄| 自拍偷拍视频在线 | √天堂资源地址在线官网 | 毛片一级视频 | 久久国产劲爆∧v内射 | 亚洲AV无码一区二区三区少妇 | aaa成人| 96精品 | 久99精品| 一区二区三区网站 | 国产精品久久久久久久久 | 日韩一区二区视频在线 | 一曲二曲三曲在线观看中文字幕动漫 | 精品欧美激情精品一区 | 国产又粗又黄又爽又硬的视频 | 国产特黄大片aaaa毛片 | 91亚洲一线产区二线产区 | 欧美11p| 国产盗摄精品一区二区酒店 | 色久阁 | 91国内精品久久久 | 日韩色影院 | 在线观看成人免费 | 国模精品视频一区二区 | 日本香蕉视频 | 亚洲av少妇一区二区在线观看 | 精品久久不卡 | 国产又粗又硬视频 | 亚洲乱码国产一区三区 | 伊人色网站 | 69堂在线观看 | 中文字幕一区二区三三 | 欧美xxxx83d | 成人自拍视频 | 亚洲国产精品福利 | 午夜影视体验区 | 欧美一级免费在线 | 欧美色女人 | 国产精品毛片久久 | 午夜性影院 | 欧洲成人在线视频 | 欧美狠狠操 | 无码aⅴ精品一区二区三区浪潮 | 丰满熟妇肥白一区二区在线 | 日本熟妇一区二区三区 | 日本一级黄色 | 国产高清一级片 | 夜夜操天天干 | 波多野结衣免费观看视频 | 波多野久久| 黄色的毛片 | 色秀视频在线观看 | 亚洲精品一级片 | 中文字幕一二三四区 | 狠狠干导航 | 久久无毛| www.四虎在线 | 日韩视频在线观看一区二区 | 青青青操 | 大尺度做爰呻吟舌吻情头 | 色婷婷国产 | 中文字幕亚洲不卡 | 尤物网站在线播放 | 在线视频 一区二区 | 免费在线成人av | 欧美三级视频在线观看 | 在线免费看黄 | 人妻巨大乳hd免费看 | 成人在线国产 | 啪啪精品 | 97香蕉| 免费观看一级黄色片 | 中文字幕一区二区人妻电影丶 | 成人爽a毛片一区二区 |