我需要加密/解密用户名字段,我打算使用下面的代码:
public class Decrypter {
Cipher dcipher;
byte[] salt = new String("12345678").getBytes();
int iterationCount = 1024;
int keyStrength = 256;
SecretKey key;
byte[] iv;
Decrypter(String passPhrase) throws Exception {
SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
KeySpec spec = new PBEKeySpec(passPhrase.toCharArray(), salt, iterationCount, keyStrength);
SecretKey tmp = factory.generateSecret(spec);
key = new SecretKeySpec(tmp.getEncoded(), "AES");
dcipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
}
public String encrypt(String data) throws Exception {
dcipher.init(Cipher.ENCRYPT_MODE, key);
AlgorithmParameters params = dcipher.getParameters();
iv = params.getParameterSpec(IvParameterSpec.class).getIV();
byte[] utf8EncryptedData = dcipher.doFinal(data.getBytes());
String base64EncryptedData = new sun.misc.BASE64Encoder().encodeBuffer(utf8EncryptedData);
System.out.println("IV …Run Code Online (Sandbox Code Playgroud) 我正在使用Rfc2898DeriveBytesC#加密文本
以下是我的代码
private static string Encrypt(string clearText)
{
string EncryptionKey = "MAKV2SPBNI99212";
byte[] clearBytes = Encoding.Unicode.GetBytes(clearText);
using (Aes encryptor = Aes.Create())
{
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
encryptor.Key = pdb.GetBytes(32);
encryptor.IV = pdb.GetBytes(16);
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateEncryptor(), CryptoStreamMode.Write))
{
cs.Write(clearBytes, 0, clearBytes.Length);
cs.Close();
}
clearText = Convert.ToBase64String(ms.ToArray());
}
}
return clearText; …Run Code Online (Sandbox Code Playgroud) 例如,SHA-1是否足够安全,无需验证用户密码?
或者我们总是需要盐来预防攻击?
JSSE 和 JCE 有什么区别。这两者都在广泛的情况下处理加密。我的问题可能不清楚。由于 JCE 提供了我们可以用来加密数据的加密,那么为什么我们需要将 JSSE 用于也提供加密的安全套接字?
我想在 Oracle 12 上使用 SHA-512 加密一些数据。
例如,我想加密这个字符串:
230049008251111
Run Code Online (Sandbox Code Playgroud)
对此:
DA9AA3ACDE64DB3297FF75FDE407DAF3DB7EFF0CDF987C6C16BAF28242997046997EBF5A2F6C4F7449A4936C6518A6FD24A3C0984E9C09BF19395175F1BE2B5F
这是根据我正在使用的sha512 生成器。在 Oracle 上这样做的最佳方法是什么?
谢谢
我创建了一个名为的类SortByFarz,并尝试按升序对其进行排序,但出现以下错误,我不知道为什么:
error: cannot find symbol
Collections.sort(a1, new SortByFarz());
^
symbol: class SortByFarz
location: class Salaat
Run Code Online (Sandbox Code Playgroud)
代码:
error: cannot find symbol
Collections.sort(a1, new SortByFarz());
^
symbol: class SortByFarz
location: class Salaat
Run Code Online (Sandbox Code Playgroud)
请注意,这些类都在同一个Salaat.java文件中。
我们可以使用 ECC 加密大文件吗?或者就像 RSA 只适用于小文件一样?任何人都可以推荐一个用于 ECC Java 实现的好网站吗?
谢谢
我有一个问题......有点基本但我想我可以从你们那里得到一些帮助
我正在加密一个文件,我加密的信息是
LoginTxtBox.Text + "/" + PwdTxtBox.Text + "/" + InstNameTextBox.Text + "/" + DBNameTxtBox.Text;
Run Code Online (Sandbox Code Playgroud)
当我解密它时......我正在做:
StringBuilder sClearText = new StringBuilder();
encryptor.Decrypt(sPrivateKeyFile, sDataFile, sClearText);
//username/password
string s = sClearText.ToString();
string[] split = s.Split(new Char[] { '/' });
if (split.Length == 4)
{
split0 = split[0];
split1 = split[1];
split2 = split[1];
split3 = split[1];
Run Code Online (Sandbox Code Playgroud)
现在我得到的要求是我需要计算字符串解密格式中的分隔符,如果分隔符超过 2 个,那么它不是一个新应用程序。如果只有一个分隔符,那么它是一个从未使用过的应用程序。我不知道如何计算解密字符串中的分隔符...请帮帮我
我必须用 Java 编写一个程序来比较 3 种不同的非对称密码算法。我想选择密钥大小和消息大小(将随机生成),并且我想显示每种算法使用相同维度的密钥加密相同文本所需的不同时间。
我想比较 RSA、DSA 和 ECIES。前两个不会造成任何问题,但最后一个我不知道该怎么办。
主要问题是:
Cipher在Java中创建一个使用的"ECIES",它似乎不存在?cryptography ×5
java ×5
encryption ×4
c# ×2
security ×2
.net ×1
aes ×1
arraylist ×1
comparator ×1
hash ×1
java-ee ×1
oracle ×1
oracle12c ×1
sha512 ×1