我有一个暴力破解 AES256 加密的程序,当计算机进入关机/或重新启动时,我将如何暂停该程序并在同一点继续,直到系统下次启动?
程序的一种休眠。
我同意@Thufir 回答的第 2 部分和第 3 部分,但关于第 1 部分,它假定您正在运行 GUI。
取而代之的是,我会在 JVM 中添加一个关闭挂钩,并在那时写入我的程序的状态。您可以使用以下方法执行此操作:
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
// your serialization code goes here
}
});
你在这里问了三件事。
1-如何检查操作系统何时重新启动/关闭
解决方法:你可以做一个空的不可见窗口,并添加WindowListener。它将在窗口上接收 windowClosing 事件。
你可以在这里找到一个例子
2-如何保存我的蛮力进程的状态并在系统启动时暂停以重新启动。
解决方法:这里很简单,你必须序列化。当系统再次启动时,这些将保存您的类/类的状态以反序列化。你可以在这里学习
3-当操作系统启动时,如何知道何时再次启动程序?
解决方案:您可以将您的程序置于操作系统的初始化过程中。当它启动时,您检查是否有任何要反序列化的内容并执行此操作,从而恢复 BruteForce 的过程。