如何将String转换为SecretKey

我想将String转换为secretKey public void generateCode(String keyStr){ KeyGenerator kgen = KeyGenerator.getInstance(“AES”); kgen.init(128); // 192 and 256 bits may not be available // Generate the secret key specs. secretKey skey=keyStr; //How can I make the casting here //SecretKey skey = kgen.generateKey(); byte[] raw = skey.getEncoded(); } 我尝试使用BASE64Decoder而不是secretKey,但我面临一个问题,即我无法指定密钥长度。 编辑:我想从另一个地方调用此函数 static public String encrypt(String message , String key , int […]

Spring Security:多个HTTP配置不起作用

我正在尝试使用Spring Security,我有一个用例,我想要保护不同的登录页面和不同的URL集。 这是我的配置: @Configuration @Order(1) public static class ProviderSecurity extends WebSecurityConfigurerAdapter{ @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers(“/”, “/home”).permitAll() .antMatchers(“/admin/login”).permitAll() .antMatchers(“/admin/**”).access(“hasRole(‘BASE_USER’)”) .and() .formLogin() .loginPage(“/admin/login”).permitAll() .defaultSuccessUrl(“/admin/home”) .failureUrl(“/admin/login?error=true”).permitAll() .usernameParameter(“username”) .passwordParameter(“password”) .and() .csrf() .and() .exceptionHandling().accessDeniedPage(“/Access_Denied”); } } @Configuration @Order(2) public static class ConsumerSecurity extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { […]

Java中的inheritance – 创建子类的对象也会调用超类的构造函数。 为什么呢?

我有一个关于Javainheritance的问题。 我有两个A和B类, B类inheritance自A: public class A { public A() { System.out.println(“Hi!”); } } public class B extends A { public B() { System.out.println(“Bye!”); } public static void main(String[] args) { B b = new B(); } } 当我运行程序B时,输出是: Hi! Bye! 问题 :为什么在创建class B对象时调用class A的构造函数 ? 我知道Binheritance了A中的所有实例或类变量以及所有方法,在这个意义上,B的对象具有A的所有特征以及B中定义的一些其他特征。但是,我不知道并且没有’我想象当我创建一个B类型的对象时,也会调用A的构造函数。 所以写下这个: B b = new B(); 创建两个对象 – 一个是B类,另一个是A类 […]

Firebase列表适配器构造函数错误

我创建了一个显示聊天消息的函数,我按照教程,我也查看了Firebase列表适配器的文档,但无论我做什么,我都会收到此错误: Error:(98, 19) error: constructor FirebaseListAdapter in class FirebaseListAdapter cannot be applied to given types; required: FirebaseListOptions found: Chat,Class,int,DatabaseReference reason: actual and formal argument lists differ in length where T is a type-variable: T extends Object declared in class FirebaseListAdapter 这是我的代码: private void displayChatMessage() { ListView listOfMessage = (ListView)findViewById(R.id.list_of_messages); FirebaseRecyclerOptions options = new FirebaseRecyclerOptions.Builder() .setQuery(query, […]

在巨大的数据负载下对JTable行选择事件的延迟响应

我有一个Swing JTable动态更新了大量数据 – 不断添加新行,并且几分钟内可以添加1000-2000行。 我已经注册了一个Listener来响应使用的单行选择事件来执行一些工作人员。 我已经使用Observer模式进行Swing数据绑定,而表的模型由WritableList实现支持。 因此,新项目将从其自己的Realm添加到表中。 并且从SWT UI线程添加了Listener。 问题是,当新行添加到表时,它不会立即响应用户行选择事件。 只有在停止更新表格模型时,表格才会响应用户选择 – 有时会延迟30-60秒。 请帮助我解释为什么我的表模型在深度更新时不会立即响应用户选择,以及如何克服此限制。 任何建议将不胜感激。

Java因实现访问较弱的接口方法而出错

当我编译这段代码时: interface Rideable { String getGait(); } public class Camel implements Rideable { int x = 2; public static void main(String[] args) { new Camel().go(8); } void go(int speed) { System.out.println((++speed * x++) + this.getGait()); } String getGait() { return ” mph, lope”; } } 我收到以下错误: Camel.java:13: error: getGait() in Camel cannot implement getGait() in […]

Java JSON序列化 – 最佳实践

我需要为某些对象实现JSON序列化,并且在与generics集合集成时遇到了问题。 所有可序列化的类都实现了这个接口(JSONObject来自这个库): interface JSONSerializable{ public JSONObject dump() throws JSONException //serializes object public void load(JSONObject obj) throws JSONException //deserializes object } 基于java.util.list的我的集合代码看起来或多或少是这样的: class AwesomeList implements JSONSerializable{ private LinkedList items = new LinkedList(); … … public JSONObject dump() throws JSONException { JSONObject result = new JSONObject(); JSONArray a = new JSONArray(); for(T i : items){ a.put(i.dump()); } […]

局部变量,实例字段,输入参数和类字段之间有什么区别?

相对于简单的Java程序,局部变量,实例字段,输入参数和类字段之间有什么区别?

Java中的浮点数的精度错误

我想知道在Java中修复精度错误的最佳方法是什么。 正如您在以下示例中所看到的,存在精度错误: class FloatTest { public static void main(String[] args) { Float number1 = 1.89f; for(int i = 11; i < 800; i*=2) { System.out.println("loop value: " + i); System.out.println(i*number1); System.out.println(""); } } } 显示的结果是: 循环值:11 20.789999 循环值:22 41.579998 循环值:44 83.159996 循环值:88 166.31999 循环值:176 332.63998 循环值:352 665.27997 循环值:704 1330.5599 此外,如果有人可以解释为什么它只从11开始并且每次都加倍。 我认为所有其他值(或至少其中许多值)显示正确的结果。 这样的问题让我头疼,我通常使用数字格式化程序或将它们放入String中。 编辑:正如人们提到的,我可以使用一个双,但在尝试之后,似乎1.89作为双倍时间792仍然输出错误(输出为1496.8799999999999)。 我想我会尝试其他解决方案,比如BigDecimal

使用JSP / Servlet和Ajax的简单计算器

这是我之前的问题的延续,但我觉得它应该独立,特别是因为我得到了非常详细的答案。 我想在jsp中创建一个简单的计算器。 将有两个用于数字的文本框和一个添加按钮。 理想情况下,我希望答案出现在页面中而不重新加载,但从我得到的答案来看,它似乎对我的规模来说太大了。 我可以想到:1)打印第三个文本框的答案(这可能吗?)或以某种方式加载相同的页面(使用添加按钮和所有)和答案(并能够输入不同的数字等) 。 你能建议一个好方法吗?