小编Not*_*ame的帖子

为什么SlowEquals函数对于比较散列密码很重要?

我最近阅读了一篇关于密码散列和 salting 的文章,其中解释了(在"SlowEquals代码如何工作?"下)必须使用SlowEquals函数来比较输入的密码的哈希值与数据库中密码的哈希值.

据我所知,使用SlowEquals函数是因为它使用XOR而不是==因此将检查两个字符串中的每个字符,而不是在第一个不匹配的字符上失败.

有两件事我不明白:

  1. 为什么XOR会在达到失败条件后继续检查字符串.
  2. 如果主要想法是在尝试破解密码时不给攻击者任何有用的信息,那么具有随机生成时间的sleep()函数是不是很好用?

hash cryptography

11
推荐指数
2
解决办法
2610
查看次数

JavaFX中的有效图像裁剪

我正在尝试使用JavaFX编写拼图游戏,部分原因是有人问我,部分是因为我想给JavaFX一个机会.但是,我对图像的实际裁剪有困难.

该想法是供用户提供图像和程序以将图像切割成更小的片段.简单吧?我的问题是:我能找到切割图像的唯一方法是制作图像对象的副本并更改副本的可见部分,这是一个例子:

ImageView imgageView = new ImageView(); // Creates a new ImageView; this will be a single puzzle piece.
imgageView.setImage(originalImage); // Use the original image as the "base."
Rectangle2D rectangle = new Rectangle2D(0, 0, 50, 50); // Crop the image from (0,0) to (50, 50).
Run Code Online (Sandbox Code Playgroud)

只是为了澄清最后一行,这是API中相关部分:

public Rectangle2D(double minX,
           double minY,
           double width,
           double height)
Creates a new instance of Rectangle2D.
Parameters:
minX - The x coordinate of the upper-left corner of the Rectangle2D
minY - …
Run Code Online (Sandbox Code Playgroud)

javafx image

6
推荐指数
2
解决办法
9265
查看次数

我应该如何使用递归递增数字?

我有一个数字的问题,我想使用递归函数递增.该函数没有像我期望的那样返回值.在调试时,我看到数字增加但是当返回值时,似乎对数字的调整以相反的顺序返回.

这是一个简单的例子:

private static int recursionTest(int num){
    if (num < 10){
        recursionTest(++num);
    }
    return num;
}

public static void main(String[] args) {
    System.out.println(recursionTest(1));
}
Run Code Online (Sandbox Code Playgroud)

输出始终为2.当我使用逐步调试器时,我看到以下内容:

  1. 每次迭代时,数字增加1.
  2. 当数字达到10时,执行return语句.
  3. 然后调试器突出显示"recursionTest(++ num);" 但是这个数字减少了1.
  4. return语句再次执行.
  5. 重复步骤3和4,直到最终返回值2.

为什么值最终会减少,如何返回最初计算的值?

java recursion

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

标签 统计

cryptography ×1

hash ×1

image ×1

java ×1

javafx ×1

recursion ×1