在java中使用线程的粗略"成本"是多少?是拇指/经验值的任何规则,一个线程的创建需要多少内存?是否粗略估计创建线程需要多少CPU周期?
上下文:在Web应用程序的servlet中,我希望并行化内容创建,因为内容的一部分是基于文件的,基于数据库的以及基于Web服务的.但这意味着对于每个"http-request-thread"(我的serlvet容器),我将有两到四个额外的线程.请注意,我将使用ExecutorServiceJava 6中的.
当我在Web服务器上使用数百到数千个Java线程时,我应该期待什么?
我正在开发NFC应用程序.我的应用程序将处理秘密信息,我想将这些数据存储在SIM卡上.是否有可能,如果有可能,我该怎么做?我的手机的Android版本是Android 2.3.5.
我想.exe使用PKCS#7 签署一个文本文件(可能是将来的文件或其他文件)并使用Java验证签名.
.jar和文档)?如果可能,请提供给我的代码段.
我试图解密"~9?8?m???=?T?G"从后端服务器收到的字符串,该服务器使用OpenSSL使用AES-256-CBC加密字符串.有代码块:
public static String decryptText(String textToDecrypt) {
try {
byte[] base64TextToDecrypt = Base64.encodeBase64(textToDecrypt.getBytes("UTF-8"));
byte[] guid = "fjakdsjkld;asfj".getBytes("UTF-8");
byte[] iv = new byte[16];
System.arraycopy(guid, 0, iv, 0, guid.length);
IvParameterSpec ips = new IvParameterSpec(iv);
byte[] secret = DECRYPTION_SECRET_HASH.getBytes("UTF-8");
SecretKeySpec secretKey = new SecretKeySpec(secret, "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
// decryption pass
cipher.init(Cipher.DECRYPT_MODE, secretKey, ips);
byte[] converted = cipher.doFinal(base64TextToDecrypt);
System.out.println(new String(converted));
} catch (Exception e) {
e.printStackTrace();
Log.e(TAG, "Decipher error for " + textToDecrypt, e);
}
return "";
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我到达时
byte[] …Run Code Online (Sandbox Code Playgroud) 我在应用程序中有一些安全密钥.我想要安全地存储它.我喜欢将它存储在本机共享库中(可能是从某些代码生成的).之后,我希望它通过一种方法返回,该方法将检查原始APK的签名.所以没有人可以使用此文件,除了可信应用程序.我知道,ndk库也可以反编译,但是对本机代码进行逆向工程甚至比java .class文件更难.
题:
我理解它的方式,PHP中允许以下内容,因为它是一种弱类型的语言.
$var = 'Hello';
$var = 5;
Run Code Online (Sandbox Code Playgroud)
我刚刚安装了一个Windows版本的Python 2.6,我希望它不要让我像这样更改类型,但上面代码的Python等效工作就像在PHP中一样!
>>> var = "Hello"
>>> type(var)
<type 'str'>
>>> var = 5
>>> type(var)
<type 'int'>
Run Code Online (Sandbox Code Playgroud)
我对弱/强打字的理解有缺陷吗?
根据这个文档,
arc4random_uniform()建议使用结构,arc4random() % upper_bound因为当上限不是2的幂时,它避免了"模偏差".
偏见有多糟糕?例如,如果我生成上限为6的随机数,使用和之间arc4random有什么区别?%arc4random_uniform()
我正在为Android中的PBE实现和AES加密引擎,我发现了两种方法来实现IV的创建,我想知道哪一个更好,更安全得到IvParameterSpec:
方法#1:
SecureRandom randomSecureRandom = SecureRandom.getInstance("SHA1PRNG");
byte[] iv = new byte[cipher.getBlockSize()];
randomSecureRandom.nextBytes(iv);
IvParameterSpec ivParams = new IvParameterSpec(iv);
Run Code Online (Sandbox Code Playgroud)
方法#2:
AlgorithmParameters params = cipher.getParameters();
byte[] iv2 = params.getParameterSpec(IvParameterSpec.class).getIV();
ivParams = new IvParameterSpec(iv2);
Run Code Online (Sandbox Code Playgroud) 我想解释清楚Num,Real,Integral,Integer,Int,Ratio,Rational,Double,Float.
由于点亮率模式下的AES非常适合随机访问,因此我假设我使用CipherOutputStreamAES-CTR模式创建了数据源.下面的库 - 不是我的 - 使用RandomAccessFile允许在文件中寻找特定字节偏移的库.
我最初的想法是使用CipherInputStream带有Cipher正确参数的初始化,但是用于此的API不会寻求并声明不支持mark和reset.
我是否错过了可以为我做的这一部分API,我应该查看CTR的IV /块计数器的配置并使用自定义输入流(听起来像是针对self我的霰弹枪)重新创建它采取我错过的其他方法?
java ×6
aes ×3
android ×2
cryptography ×2
encryption ×2
android-ndk ×1
arc4random ×1
encoding ×1
haskell ×1
nfc ×1
numbers ×1
objective-c ×1
pkcs#7 ×1
probability ×1
python ×1
random ×1
security ×1
sim-card ×1
smartcard ×1
typeclass ×1
types ×1
weak-typing ×1