开发者社区> 问答> 正文

如何让java securityRandom 生成的salt只包含字母和数字?

public static void getNextSalt() {
    Random RANDOM = new SecureRandom();
    byte[] salt = new byte[16];
    RANDOM.nextBytes(salt);
    String str = new String(salt,"UTF-8");
    System.out.println(str);
  }

输出的字符串中什么都有(和乱码应该没关系),如何让生成的盐中只包含字母和数字啊。

展开
收起
蛮大人123 2016-02-27 14:48:56 4085 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪
     public static void main(String[] args) throws Exception {
            Random RANDOM = new SecureRandom();
            byte[] salt = new byte[16];
            RANDOM.nextBytes(salt);    
    -       String str = new String(salt,"UTF-8");
    +       String str = new BASE64Encoder().encode(salt);
            System.out.println(str);
        }

    参考:
    https://community.oracle.com/blogs/evanx/2013/01/24/password-salt

    2019-07-17 18:48:52
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载