PhoneCheckUtil手机号正则验证工具类 和 SecureRandom 生成安全随机数工具类

举报
小米粒-biubiubiu 发表于 2020/11/28 22:59:21 2020/11/28
【摘要】  PhoneCheckUtil  package com.tnar.utils; /** * @author dzx * @ClassName: * @Description: * @date 2019年04月19日 16:14:36 */ import java.util.regex.Matcher;import java.util.regex.Pattern;impor...

 PhoneCheckUtil 


  
  1. package com.tnar.utils;
  2. /**
  3. * @author dzx
  4. * @ClassName:
  5. * @Description:
  6. * @date 2019年04月19日 16:14:36
  7. */
  8. import java.util.regex.Matcher;
  9. import java.util.regex.Pattern;
  10. import java.util.regex.PatternSyntaxException;
  11. public class PhoneCheckUtil {
  12. /**
  13. * 大陆号码或香港号码均可
  14. */
  15. public static boolean isPhoneLegal(String str)throws PatternSyntaxException {
  16. return isChinaPhoneLegal(str) || isHKPhoneLegal(str);
  17. }
  18. /**
  19. * 大陆手机号码11位数,匹配格式:前三位固定格式+后8位任意数
  20. */
  21. public static boolean isChinaPhoneLegal(String str) throws PatternSyntaxException {
  22. // "^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(166)|(17[0,1,3,5,6,7,8])|(18[0-9])|(19[8|9]))\\d{8}$";
  23. String regExp = "^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(166)|(17[0,1,3,5,6,7,8])|(18[0-9])|(19[8|9]))\\d{8}$";
  24. Pattern p = Pattern.compile(regExp);
  25. Matcher m = p.matcher(str);
  26. return m.matches();
  27. }
  28. /**
  29. * 香港手机号码8位数,5|6|8|9开头+7位任意数
  30. */
  31. public static boolean isHKPhoneLegal(String str)throws PatternSyntaxException {
  32. String regExp = "^(5|6|8|9)\\d{7}$";
  33. Pattern p = Pattern.compile(regExp);
  34. Matcher m = p.matcher(str);
  35. return m.matches();
  36. }
  37. public static void main(String[] args){
  38. System.out.println( PhoneCheckUtil.isChinaPhoneLegal(""));
  39. }
  40. }
RandomPwdUtil

  
  1. package com.tnar.utils;
  2. import java.io.IOException;
  3. import java.security.NoSuchAlgorithmException;
  4. import java.security.SecureRandom;
  5. /**
  6. * @author dzx
  7. * @ClassName:
  8. * @Description: 生成随机长度的密码工具类
  9. * @date 2019年04月20日 16:30:06
  10. */
  11. public class RandomPwdUtil {
  12. enum PWD_FORMAT {
  13. LETTER_NUMBER("abcdefghijklmnopqrstuvwxyz1234567890"),
  14. NUMBER("1234567890");
  15. String format;
  16. PWD_FORMAT(String format) {
  17. this.format = format;
  18. }
  19. public String getFormat() {
  20. return format;
  21. }
  22. public void setFormat(String format) {
  23. this.format = format;
  24. }
  25. }
  26. /**
  27. * 产生密钥信息
  28. * 采用安全的生成随机数方法(SecureRandom)
  29. * @throws IOException
  30. * @throws NoSuchAlgorithmException
  31. */
  32. /**
  33. * @param length 密码长度
  34. * @param format 指定格式
  35. * @return
  36. * @throws NoSuchAlgorithmException
  37. */
  38. public static String genRandomPwd(int length, PWD_FORMAT format) throws NoSuchAlgorithmException {
  39. try {
  40. SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
  41. StringBuffer stringBuffer = new StringBuffer();
  42. for (int i = 0; i < length; i++) {
  43. int number = secureRandom.nextInt(format.getFormat().length());
  44. stringBuffer.append(format.getFormat().charAt(number));
  45. }
  46. return stringBuffer.toString();
  47. } catch (NoSuchAlgorithmException e) {
  48. e.printStackTrace();
  49. } catch (Exception e) {
  50. e.printStackTrace();
  51. }
  52. return null;
  53. }
  54. /**
  55. * 生成x 位数的随机密码
  56. *
  57. * @param length
  58. * @return
  59. * @throws NoSuchAlgorithmException
  60. */
  61. public static String genRandomPwd(int length) {
  62. try {
  63. SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
  64. StringBuffer stringBuffer = new StringBuffer();
  65. for (int i = 0; i < length; i++) {
  66. stringBuffer.append(secureRandom.nextInt(10));
  67. }
  68. return stringBuffer.toString();
  69. } catch (NoSuchAlgorithmException e) {
  70. e.printStackTrace();
  71. } catch (Exception e) {
  72. e.printStackTrace();
  73. }
  74. return null;
  75. }
  76. public static void main(String[] args) throws NoSuchAlgorithmException {
  77. System.out.println(RandomPwdUtil.genRandomPwd(8));
  78. System.out.println(RandomPwdUtil.genRandomPwd(10, PWD_FORMAT.LETTER_NUMBER));
  79. }
  80. }

 

 

文章来源: blog.csdn.net,作者:血煞风雨城2018,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_31905135/article/details/89485793

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。