我使用AES加密字符串,但加密的字符串包含\n
和\r
结尾.
public class AESImpl {
private static String decryptedString;
private static String encryptedString;
public static void main(String[] args) throws NoSuchAlgorithmException, IOException, ClassNotFoundException {
String strToEncrypt = "This text has to be encrypted";
SecretKey secretKey = generateSecretKey();
String encryptStr = encrypt(strToEncrypt, secretKey);
System.out.println("Encrypted String : " + encryptStr + "It should not come in new line");
String decryptStr = decrypt(encryptStr, secretKey);
System.out.println("Decrypted String : " + decryptStr);
}
private static SecretKey generateSecretKey() throws NoSuchAlgorithmException, IOException {
KeyGenerator …
Run Code Online (Sandbox Code Playgroud) 我正在使用Java密钥库来存储AES加密的密钥.
final String strToEncrypt = "Hello World";
KeyGenerator kg = KeyGenerator.getInstance("AES");
kg.init(128);
SecretKey sk = kg.generateKey();
String secretKey = String.valueOf(Hex.encodeHex(sk.getEncoded()));
//Storing AES Secret key in keystore
KeyStore ks = KeyStore.getInstance("JCEKS");
char[] password = "keystorepassword".toCharArray();
java.io.FileInputStream fis = null;
try {
fis = new java.io.FileInputStream("keyStoreName");
ks.load(fis, password);
} finally {
if (fis != null) {
fis.close();
}
KeyStore.ProtectionParameter protParam =
new KeyStore.PasswordProtection(password);
KeyStore.SecretKeyEntry skEntry = new KeyStore.SecretKeyEntry(sk);
ks.setEntry("secretKeyAlias", skEntry, protParam);
Run Code Online (Sandbox Code Playgroud)
但我得到以下例外.
线程"main"中的异常java.security.KeyStoreException:java.security.KeyStore.setEntry中的未初始化密钥库
(未知来源)
如何解决这个错误?提前致谢
我必须为 AES 加密/解密生成一个随机密钥并将此密钥写入 UNIX 中的文件。有人可以帮助我学习如何执行此操作吗?
我使用以下代码来检查IP地址是否在给定的子网范围内.它适用于从0到31的网络前缀.但是当我将网络前缀值设置为32时,它给出较低的范围和较高的范围为0.0.0.0而不是10.198.23.4.我正在使用commons-net-3.3 jar.在上述方法中是否有任何错误,或者是有效检查Ip范围的其他可行方法.
public class TestIPRange {
public static void main(String[] args) {
String ipRange = "10.198.23.4/32";
String clientIp = "10.198.23.4";
SubnetUtils utils = new SubnetUtils(ipRange);
System.out.println("lower address: " + utils.getInfo().getLowAddress());
System.out.println("higher address: " + utils.getInfo().getHighAddress());
System.out.println(utils.getInfo().isInRange(clientIp));
}
}
Run Code Online (Sandbox Code Playgroud)
输出
低地址:0.0.0.0
更高地址:0.0.0.0
假
我必须实现具有以下场景的AES加密/解密.
App1和App2有2个应用程序在不同的服务器上运行.App1将加密(使用AES加密)一些数据并将其提供给App2.App2将使用AES解密解密相同的数据.需要与App2共享密钥以进行解密.那么,如何与App2共享密钥?在这种情况下我们可以使用java密钥库吗?
我正在 Spring Boot 应用程序中使用 javax 验证 API 进行跨字段验证。我有一个 User bean,我必须验证firstname
两者lastname
为空/空。该字段至少有一个应该有值。
我为此需求创建了自定义注释 ( NameMatch.java
) 和自定义验证器 ( )。NameValidator.java
@NameMatch(first = "firstname", second = "lastname", message = "The first and lastname can't be null")
public class User {
private String firstname;
private String lastname;
@NotNull
@Email
private String email;
@NotNull
private String phone;
}
Run Code Online (Sandbox Code Playgroud)
名称匹配.java
@Target({TYPE, ANNOTATION_TYPE})
@Retention(RUNTIME)
@Constraint(validatedBy = NameValidator.class)
@Documented
public @interface NameMatch
{
String message() default "{constraints.fieldmatch}";
Class<?>[] groups() default {};
Class<? extends Payload>[] …
Run Code Online (Sandbox Code Playgroud) 我有一个使用GWT 2.0.4并在IE8浏览器上运行良好的应用程序.在IE11中打开时,它会显示空白页面,并在下面给出错误消息.
com.google.gwt.core.client.JavaScriptException : (TypeError) : Object doesn’t support property or method ‘attachEvent’
Run Code Online (Sandbox Code Playgroud)
抛出异常是因为"attachEvent"是旧版Internet Explorer中使用的已弃用函数.IE11使用"addEventListener"方法而不是"attachEvent".
user.agent值设置为"ie6",因此我将其更改为"gecko1_8".更改用户代理后,它会打开应用程序,但表中的数据(GWT-ext GridPanel)会相互重叠,滚动条丢失,菜单栏的对齐方式也会更改.
启用兼容模式后,它正常工作.在IE11中运行我的应用程序的正确解决方法是什么?我是否需要升级GWT,如果是,那么哪个版本支持IE11?我不必使用"X-UA-Compatible = IE8"元标记....请帮忙
我有一个 Employee 类,有 2 个属性 id 和 name。我将重写 hashcode 和 equals 方法,如下所示。
员工.java:
import java.util.Objects;
public class Employee {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int hashCode() {
return Objects.hash(id, name);
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj …
Run Code Online (Sandbox Code Playgroud) java ×6
encryption ×4
aes ×3
keystore ×2
cryptography ×1
css ×1
gwt ×1
hashcode ×1
hashset ×1
ip ×1
junit5 ×1
networking ×1
newline ×1
security ×1
spring-boot ×1
unix ×1
validation ×1