Java和C#之间的加密差异

嗨,我想弄清楚如何复制在C#中完成的文本的加密,但在Java中。 代码的一部分仍然困扰着我,似乎无法找到答案,这是在C#: PasswordDeriveBytes myPass = new PasswordDeriveBytes(String Password, byte[] Salt); Trp.Key = myPass.GetBytes(24); Trp.IV = myPass.GetBytes(8); 基本上什么相当于Java中的这段代码? 更新:使用提供的PasswordDeriveBytes代码(第二个代码段),我能够完美地复制C#代码。 谢谢Maarten Bodewes。 BASE64Encoder base64 = new BASE64Encoder(); PasswordDeriveBytes i_Pass = new PasswordDeriveBytes(passWord, saltWordAsBytes); byte[] keyBytes = i_Pass.getBytes(24); byte[] ivBytes = i_Pass.getBytes(8); Cipher c3des = Cipher.getInstance(“DESede/CBC/PKCS5Padding”); SecretKeySpec myKey = new SecretKeySpec(keyBytes, “DESede”); IvParameterSpec ivspec = new IvParameterSpec(ivBytes); c3des.init […]

为什么1/0给出错误但1 / 0.0返回“Inf”?

我只是好奇这个: 在Java中评估1/0时,会发生以下exception: 线程“main”中的exceptionjava.lang.ArithmeticException:/在Foo.main中为零(Foo.java:3) 但是1/0.0被评估为Infinity 。 public class Foo { public static void main (String[] args) { System.out.println(1/0.0); } } 为什么会这样?

用Java解码URI查询字符串

我需要解码包含查询字符串的URI; 预期的输入/输出行为类似于以下内容: abstract class URIParser { /** example input: * something?alias=pos&FirstName=Foo+A%26B%3DC&LastName=Bar */ URIParser(String input) { … } /** should return “something” for the example input */ public String getPath(); /** should return a map * {alias: “pos”, FirstName: “Foo+A&B=C”, LastName: “Bar”} */ public Map getQuery(); } 我已经尝试过使用java.net.URI ,但它似乎解码了查询字符串所以在上面的例子中我留下了“alias = pos&FirstName = Foo + A&B = […]

正在下载Eclipse的源代码

我正在研究大型Java项目,并希望查看Eclipse的源代码。 我已经去了这个url( http://wiki.eclipse.org/index.php/CVS_Howto ),并认为我看到的最有用的cvs存储库就是这个: :pserver:anonymous@dev.eclipse.org:/ cvsroot / eclipse(Eclipse平台项目) 但是,在查看此存储库时,它有如此多的模块! 我应该尝试检查哪些模块? 我不一定想从源代码构建IDE,但是,我只想获得核心Eclipse代码库来执行一些分析。 我会查看以“org.eclipse …”开头的任何模块吗? 我应该检查其他任何一个吗? 或者有更简单的方法来获取源? 我在某处读到你可以从Eclipse的二进制版本获取源代码,但我不确定在哪里可以找到源代码。

在Java中获得独有的系统范围锁定

我正在重新编写可以多次启动的Java可执行文件,我希望该过程一次完成一个。 在C#中,我会使用命名/系统Mutex执行此操作,但这在Java中似乎不可能。 我该如何实现此function?

如何在Java 8中对对象列表进行分页?

给定一个包含n元素和所需页面大小为m的java.util.List ,我想将其转换为包含n/m+n%m元素的映射。 每个地图元素应包含m元素。 这是一个整数的例子: List list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // What is the equivalent Java 8 code to create the map below from my list? Map<Integer, List> map = new HashMap(); map.put(0, Arrays.asList(1,2,3)); map.put(1, Arrays.asList(4,5,6)); map.put(2, Arrays.asList(7,8,9)); map.put(3, Arrays.asList(10)); 这是可能的,使用Java 8?

ThreadLocal在servlet中存储ServletRequest和Response:对于什么?

一旦我遇到了一个模式,将ServletRequest和响应对象放到servlet的本地ThreadLocal变量中。 servlet类还有获取当前请求和响应对象的方法。 因此,为了获得这些对象,您仍然需要使用servlet对象。 拥有这些ThrealLocal局部变量有什么意义?

在Java中将hex字符串转换为一个字节

在Java中,如何将字节的hex字符串表示(例如“1e”)转换为字节值? 例如: byte b = ConvertHexStringToByte(“1e”);

来自SwingWorker的jProgressBar更新

我用来通过更新ProgressBar来监视长时间运行的任务。 长时间运行的任务当然是在Swingworker线程中执行的。 我过去经常编程: public class MySwingWorkerClass extends SwingWorker { private JProgressBar progressBar; public MySwingWorker(JProgressBar aProgressBar) { this.progressBar = aProgressBar; progressBar.setVisible(true); progressBar.setStringPainted(true); progressBar.setValue(0); } @Override public Void doInBackground() { //long running task loop { calculation(); progressBar.setValue(value); } return null; } @Override public void done() { progressBar.setValue(100); progressBar.setStringPainted(false); progressBar.setVisible(false); } } 但最近我发现我可以通过使用“setProgress”并定义属性更改并执行类似的操作来实现 public class MySwingWorkerClass extends SwingWorker […]

字符串生成器与字符串连接

使用字符串生成器而不是纯字符串连接有什么好处和权衡? new StringBuilder(32).append(str1) .append(” test: “) .append(val) .append(” is changed”) .toString(); vs说 str1 + ” test: ” + val + ” is changed”. str1是一个随机的10个字符串。 str2是一个随机的8个字符串。