Tag: 安全

UUID.randomUUID()是否适合用作一次性密码?

如前所述,确认电子邮件应该在确认链接中具有唯一的(实际上)不可猜测的代码 – 实质上是一次性密码 。 UUID.randomUUID()文档说: 使用加密强伪随机数生成器生成UUID。 这是否意味着正确实现的JVM中的UUID随机生成器适合用作唯一的(实际上)不可猜测的OTP?

在创建帐户时,如何在内存中安全地存储密码?

我们的基于Web的应用程序使用帐户创建期间指定的密码将用户帐户绑定到用户。 在Java的情况下,在将哈希值保存在数据库中之前,如何安全地处理密码。 更具体地说,如何确保持有密码的字符串在足够短的时间间隔内被垃圾收集?

使用什么API和算法来使用java加密和解密密码

我目前正在使用Java创建应用程序,我使用java搜索密码加密,但结果是如此巨大,我感到不堪重负。 如何使用Java加密和解密密码? 加密和解密密码的最佳做法是什么? 我猜测MD5不是一种方法,因为它是一种单向哈希。 我使用struts2作为我的框架,想知道他们是否提供密码加密

PKCS#12:DerInputStream.getLength()exception

我使用keytool命令生成证书: keytool -genkeypair -alias myRSAKey -keyalg RSA -keysize 1024 -keystore test.p12 -storepass test -storetype pkcs12 然后,如果我尝试使用java安全API加载它,在将文件作为byte []获取后: KeyStore ks = KeyStore.getInstance(“PKCS12”); try{ ks.load(new ByteArrayInputStream(data), “test”.toCharArray()) } catch (Exception e){ … } 我得到一个DerInputStream.getLength():lengthTag = 127,太大的exception。 哪里不对?

什么“SecretKeyFactory不可用”的意思?

这有什么问题? for (Object obj : java.security.Security.getAlgorithms(“Cipher”)) { System.out.println(obj); } javax.crypto.SecretKeyFactory.getInstance(“AES”); 这是输出(Mac OS 10.6上的JDK 1.6): BLOWFISH ARCFOUR PBEWITHMD5ANDDES RC2 RSA PBEWITHMD5ANDTRIPLEDES PBEWITHSHA1ANDDESEDE DESEDE AESWRAP AES DES DESEDEWRAP PBEWITHSHA1ANDRC2_40 java.security.NoSuchAlgorithmException: AES SecretKeyFactory not available at javax.crypto.SecretKeyFactory.(DashoA13*..) at javax.crypto.SecretKeyFactory.getInstance(DashoA13*..) …

将密钥转换为字节,如何将其转换回密钥?

我使用以下代码将密钥转换为字节 SecretKey key = KeyGenerator.getInstance(“DES”).generateKey(); byte[] bkey=key.getEncoded(); 现在如何从bkey获取密钥? 我试过了: SecretKeySpec secretkey = new SecretKeySpec(bkey,”DES”); SecretKeyFactory sfkey = SecretKeyFactory.getInstance(“DES”); SecretKey skey = sfkey.generateSecret(secretkey); 我收到以下错误: Error during Exception java.security.spec.InvalidKeySpecException: Inappropriate key specification

防弹groovy脚本嵌入

我正在开发一个服务器应用程序,可以通过用户提供的Groovy脚本进行扩展。 很明显,我想确保这些脚本在非常紧凑的沙箱中运行,它们不会破坏核心应用程序代码或消耗太多资源来使服务器过载。 我已经研究了各种可能性,最终的解决方案可能是这些的组合: 在非常有限的安全管理器中运行脚本 。 该脚本在无权限的SecurityManager中运行。 必须声明其他权限(如Android)。 启动一个新的JVM 。 在Runtime.exec周围创建一个ScriptProcess包装器,并使用安全管理器,有限堆等生成新的JVM。因为我们启动了一个完整的流程,我们可能会对监视器的不良行为进行更多控制? 虽然资源成本很可怕……另一种方法是在这里使用Ant,但它是否可以扩展? Java Monitor API在Java 6中,有一个具有监视能力的包。 我们可以监视线程,也可以检测无限循环和内存消耗。 有人用过吗? 这些是我今天想到的。 确保这些脚本正常运行并保持一定的可伸缩性和性能的最佳方法是什么?

标准表单身份validationJava servlet

使用Java Servlets进行表单身份validation的标准方法是什么? 从现在开始,我使用一个简单的POST HTML表单实现了自己: 检查发送的参数对数据库 如果存在,将User对象保存到HttpSession中 检查每个Servlet是否存在此对象 如果不是:重定向到登录页面,并显示错误消息 但现在我偶然发现了如何使用Embedded Jetty配置安全性,现在我想我可以重用已经实现的解决方案来解决这个问题,但这里的标准方法是什么? 我自己在使用Jetty,但是Tomcat或其他Web服务器呢? 我还读到了j_security_check ,那是什么? 这是遗留方法吗?

使用RSA公钥加密AES密钥

我正在编写一个用于传输文件的小应用程序,或多或少是一种学习更多程序化加密基础的方法。 我们的想法是生成RSA密钥对,交换公钥,并发送AES iv和密钥以进行进一步解密。 我想用接收器RSA公钥加密AES密钥,如下所示: // encode the SecretKeySpec private byte[] EncryptSecretKey () { Cipher cipher = null; byte[] key = null; try { cipher = Cipher.getInstance(“RSA/ECB/NOPADDING”); // contact.getPublicKey returns a public key of type Key cipher.init(Cipher.ENCRYPT_MODE, contact.getPublicKey() ); // skey is the SecretKey used to encrypt the AES data key = cipher.doFinal(skey.getEncoded()); } catch(Exception e […]

如何使用java.security.KeyStore类存储和加载密钥

创建密钥后,如何使用Keystore类的方法存储它们以及如何加载密钥?