我最近阅读了一篇关于密码散列和 salting 的文章,其中解释了(在"SlowEquals代码如何工作?"下)必须使用SlowEquals函数来比较输入的密码的哈希值与数据库中密码的哈希值.
据我所知,使用SlowEquals函数是因为它使用XOR而不是==因此将检查两个字符串中的每个字符,而不是在第一个不匹配的字符上失败.
有两件事我不明白:
我正在尝试使用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)
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) 我有一个数字的问题,我想使用递归函数递增.该函数没有像我期望的那样返回值.在调试时,我看到数字增加但是当返回值时,似乎对数字的调整以相反的顺序返回.
这是一个简单的例子:
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.当我使用逐步调试器时,我看到以下内容:
为什么值最终会减少,如何返回最初计算的值?