小编Ast*_*ght的帖子

在 Java 和 PHP 中使用 PBKDF2

我在 Java 和 PHP 上使用 PBKDF2 算法生成相同的加密密码时遇到了一些困难。

我正在使用以下 Java 实现来生成大小为 16 字节的随机字节数组的散列。然后我将散列和盐分别存储在 MySQL 数据库中,但是当我使用从数据库中检索到的盐在 PHP 中执行相同的操作时,我得到几乎完全相同的加密,除了散列有一个前导 0 和我我终其一生都无法弄清楚原因。

爪哇:

public String hashPassword(String password, byte[] salt){

 char[] passwordChars = password.toCharArray();

     PBEKeySpec spec = new PBEKeySpec(
         passwordChars,
         salt,
         ITERATIONS,
         KEY_LENGTH
     );
     SecretKeyFactory key = null;
    try {
        key = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }

    byte[] hashedPassword = null;

    try {
        hashedPassword = key.generateSecret(spec).getEncoded();
    } catch (InvalidKeySpecException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
     return String.format("%x", new BigInteger(hashedPassword)); …
Run Code Online (Sandbox Code Playgroud)

php java encryption pbkdf2

3
推荐指数
1
解决办法
1360
查看次数

Java - JFrame 底部的额外像素 (GridBagLayout)

我在使用 GridBagLayout 时遇到问题,一切似乎都按预期工作,但 JFrame 底部有一个我似乎无法摆脱的小间隙。

这是我正在运行的代码...

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Test {

 private JFrame frame;
 private JPanel container, header, content, footer;

 public Test(){
     frame = new JFrame();
     frame.setSize(600, 400);
     frame.setLocationRelativeTo(null);
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     GridBagConstraints gbc = new GridBagConstraints();

     container = new JPanel();
     container.setBackground(Color.blue);
     container.setLayout(new GridBagLayout());

     header = new JPanel();
     header.setBackground(Color.red);
     header.setLayout(new FlowLayout(FlowLayout.LEFT,0,0));
     header.add(new JButton("Test"));
     gbc.gridx = 0;
     gbc.gridy = 0;
     gbc.weightx = 1.0;
     gbc.fill = GridBagConstraints.BOTH; …
Run Code Online (Sandbox Code Playgroud)

java swing gridbaglayout

2
推荐指数
1
解决办法
220
查看次数

有多少个人可供选择?(遗传算法)

我已经开始实现自己的遗传算法,并且正处于决定如何为新一代选择父母的阶段。我读了一些书,看来有很多不同的方法可以解决这个问题。

我知道各种选择技巧(比赛,轮盘赌),但我似乎找不到的信息就是应该选择多少个父母。

我要处理的初始人口规模介于50-75个人之间。我当时正在考虑为下一代选择一半的人口,因此每一代人口都将减少一半,不确定这是否是最好的选择。

任何建议都很好。

algorithm artificial-intelligence genetic-algorithm

2
推荐指数
1
解决办法
1218
查看次数

在 Workbench EER 图中创建 MySQL 事件

我正在使用 MySQL 的 EER 图构建器来构建数据库的设计,我知道可以创建例程组并在其中创建过程和函数,但这对于计划事件也可能吗?我尝试在例程组内创建一个事件,但它一直说我有语法错误,即使当我通过查询选项卡创建事件时,事件的语法实际上是正确的。事件只能通过查询命令行创建吗?

mysql database mysql-workbench

1
推荐指数
1
解决办法
1061
查看次数