小编the*_*ous的帖子

Android 无法创建 EC 密钥对

如标题所述,我无法使以下代码生成 ECC 密钥对。

例外是:java.security.InvalidParameterException: unknown key size 571

在桌面上,571 是最大密钥大小,我也打算在 Android 应用程序上使用最大密钥大小。我必须做什么才能使它成为可能?

接下来,是否可以通过 Android 和桌面上的其他库制作更大的密钥?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Thread thread = new Thread(){
        public void run(){
            try{
                setPriority(Thread.MAX_PRIORITY);
                SecureRandom secureRandom = new SecureRandom();
                KeyPairGenerator generator = KeyPairGenerator.getInstance("EC");
                generator.initialize(571, secureRandom);
                KeyPair keyPair = generator.generateKeyPair();
                PublicKey publicKey = keyPair.getPublic();
                PrivateKey privateKey = keyPair.getPrivate();

                System.out.println("EC public: " + publicKey.getAlgorithm() + "\t" + publicKey.getFormat());
                System.out.println("EC private: " + privateKey.getAlgorithm() + "\t" + publicKey.getFormat());
            }
            catch(Exception e){
                System.err.println("EC …
Run Code Online (Sandbox Code Playgroud)

java android cryptography elliptic-curve

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

让 JMeter 在后台运行

如何使 JMeter(从另一台机器远程运行)在后台运行,以便当我关闭 PC(从而杀死 putty shell)时,它仍然会继续运行?

jmeter

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

HttpExchange发送文件

我正在使用服务器分发一些文件(以zip格式),但是,我希望用户输入CAPTCHA,然后才能下载文件。

这带来了一个新问题,因为代码:

    private void sendFileResponse(final String filename, byte[] response, HttpExchange httpExchange) {
        //<editor-fold defaultstate="collapsed" desc="code">
        if (response != null && response.length > 0 && httpExchange != null) {
            try {
                httpExchange.setAttribute(HTTPExchange.HeaderFields.Content_Type.toString(), "application/zip");

                OutputStream outputStream = httpExchange.getResponseBody();
                httpExchange.sendResponseHeaders(200, response.length);
                outputStream.write(response);
                outputStream.flush();
                outputStream.close();
                httpExchange.getRequestBody().close();
            } catch (Exception e) {
                System.out.println(Misc.getStackTrace(e));
            }
        }
        //</editor-fold>
    }
Run Code Online (Sandbox Code Playgroud)

...将导致该文件被命名为下载请求网页的URL。例如,如果用户输入正确的验证码并从/download.html下载文件,则他们收到的文件将是download.html,而不是我的文件名。

如何使服务器将文件作为文件名发送并同时刷新网页?

谢谢。

java httpserver

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

如何有效地搜索价值之间的地图?

Map<Long, Object> map = new TreeMap<>();
map.put(100, object100);
map.put(120, object120);
map.put(200, object200);
map.put(277, object277);
map.put(300, object300);
map.put(348, object348);
map.put(400, object400);
//...
Run Code Online (Sandbox Code Playgroud)

如果方法在地图的键和下一个地图的键之间获得一个值,它将返回第一个键的对象.例如,如果使用值调用搜索方法350,则应返回object348.

键中的值的差异不固定.

但是这样的搜索需要迭代所有条目,直到它获得正确的值.那么,我该如何提高效率呢?

java

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

Gradle 7.3.3运行Junit无法创建TestEngine

我正在使用 Gradle 7.3.3,但需要 JUnit 和 PowerMock

我已将 settings.gradle 配置为:

        version('spring', '5.3.15')
        alias('spring-test').to('org.springframework', 'spring-test').versionRef('spring')

        //https://mvnrepository.com/artifact/junit/junit
        version('junit', '4.13.2')
        alias('junit').to('junit', 'junit').versionRef('junit')

        //https://mvnrepository.com/artifact/org.mockito/mockito-core
        version('mockito', '3.12.4')
        alias('mockito').to('org.mockito', 'mockito-core').versionRef('mockito')

        //https://mvnrepository.com/artifact/org.powermock/powermock-api-mockito2
        version('powermock', '2.0.9')
        alias('powermock-api').to("org.powermock", "powermock-api-mockito2").versionRef('powermock')
        alias('powermock-api-support').to("org.powermock", "powermock-api-support").versionRef('powermock')
        alias('powermock-core').to("org.powermock", "powermock-core").versionRef('powermock')
        alias('powermock-module-junit4').to("org.powermock", "powermock-module-junit4").versionRef('powermock')
        alias('powermock-module-junit4-common').to("org.powermock", "powermock-module-junit4-common").versionRef('powermock')
        alias('powermock-reflect').to("org.powermock", "powermock-reflect").versionRef('powermock')

        bundle('test', ['junit', 'mockito', 'powermock-api', 'powermock-api-support', 'powermock-core', 'powermock-module-junit4', 'powermock-module-junit4-common', 'powermock-reflect', 'spring-test'])
Run Code Online (Sandbox Code Playgroud)

然后在模块的 build.gradle 中,我将其包含在内

dependencies {
    testImplementation libs.bundles.test
}

test {
    useJUnitPlatform()
}
Run Code Online (Sandbox Code Playgroud)

测试类如下

import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
public class MyTest {

    @Test
    public void test(){
        System.out.print("hello");
    }
}
Run Code Online (Sandbox Code Playgroud)

运行测试后,我得到了失败测试的报告,其中包含以下堆栈跟踪 …

junit mockito powermock gradle

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

找不到 org.springframework.web.servlet.mvc.SimpleFormController

使用 Netbeans。

进口

import org.springframework.web.servlet.mvc.SimpleFormController;
Run Code Online (Sandbox Code Playgroud)

无法使用这个。它已更改为什么或我应该使用什么?现在学习Spring。

java spring spring-mvc

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

Gradle 任务已损坏 - 无法执行

import org.apache.tools.ant.filters.ReplaceTokens
task genScript(type:Copy){
    copy{
        from "../../scripts/script.txt"
        into projectDir
        filter ReplaceTokens, tokens: [baseName: jar.baseName, version: jar.version, prefix: 'x']
    }
}

jar.doLast{
    tasks.genScript.execute()
}
Run Code Online (Sandbox Code Playgroud)

genScript如果我只是单击它并运行,则执行得很好。但是当我这样做时..\gradlew clean jar,它给了我以下错误:

在 org.gradle.api.tasks.Copy 类型的任务“:myModule:genScript”上找不到参数 [] 的方法execute()。

如何修复它?

我正在使用 Gradle 6.0.1。

gradle

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

Java将ArrayList转换为C#

需要将Java ArrayList转换为C#ArrayList.

这是行不通的.

//code in C#
public void DoSomething(Java.Lang.Object obj){
    Java.Util.ArrayList list = (Java.Util.ArrayList) obj;
}
Run Code Online (Sandbox Code Playgroud)

例外情况:

未处理的异常:

System.InvalidCastException:指定的强制转换无效.

当我打印出来时obj.Class,它会返回class java.util.ArrayList

怎么解决?

c# java java-native-interface

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

Windows 8.1提示用户采取措施

有没有办法使用bat文件创建这样的提示?

在此处输入图片说明

...用户可以单击哪个或多个按钮,这些按钮将根据选择执行代码?

如果bat文件不存在,如何使用其他方法进行处理?

windows batch-file windows-8.1

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

Java SecurityManager - 如何确保方法仅由另一个方法运行?

我希望B只能通过对敏感数据使用或执行某些处理的private方法运行A#getSensitiveData()(例如:加密密钥,国家ID,等等).

public final class A{
    private transient final B sensitiveHolder; //set at Constructor
    public A(B sensitiveHolder){
        this.sensitiveHolder = sensitiveHolder;
    }
    private final byte[] getSensitiveData(){
        return sensitiveHolder.getSensitiveData();
    }
}

public final class B{
    private transient final byte[] sensitiveData;//encrypt and set at Constructor
    public final byte[] getSensitiveData(){
        //check if it is run by A#getSensitiveData(); if it is, decrypt by DEK and give plaintext.
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意代码将被混淆,因此请不要将任何包名称放入String.

我必须写什么跟SecurityManager#checkPrivilege()AccessController.doPrivileged()我能达到这样的效果之前?

编辑:显然这是不同的,因为所谓的"答案"不包含任何代码.工作代码的价值远远超过"哦,只做这个和那个".

java security

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