小编Kir*_*rby的帖子

Java安全:非法密钥大小或默认参数?

我之前曾问过一个关于这个问题的问题,但它没有得到正确的答案而且无处可去.

所以我已经澄清了关于这个问题的一些细节,我真的很想听听你如何解决这个问题或者我应该尝试什么的想法.

我在我的Linux服务器上安装了Java 1.6.0.12,下面的代码运行得非常完美.

String key = "av45k1pfb024xa3bl359vsb4esortvks74sksr5oy4s5serondry84jsrryuhsr5ys49y5seri5shrdliheuirdygliurguiy5ru";
try {
    Cipher c = Cipher.getInstance("ARCFOUR");

    SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "ARCFOUR");
    c.init(Cipher.DECRYPT_MODE, secretKeySpec);

    return new String(c.doFinal(Hex.decodeHex(data.toCharArray())), "UTF-8");

} catch (InvalidKeyException e) {
    throw new CryptoException(e);
}
Run Code Online (Sandbox Code Playgroud)

今天我在我的服务器用户上安装了Java 1.6.0.26,当我尝试运行我的应用程序时,我得到以下异常.我的猜测是它与Java安装配置有关,因为它在第一个工作,但在更高版本中不起作用.

Caused by: java.security.InvalidKeyException: Illegal key size or default parameters
    at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
    at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
    at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
    at javax.crypto.Cipher.init(DashoA13*..) ~[na:1.6]
    at javax.crypto.Cipher.init(DashoA13*..) ~[na:1.6]
    at my.package.Something.decode(RC4Decoder.java:25) ~[my.package.jar:na]
    ... 5 common frames omitted
Run Code Online (Sandbox Code Playgroud)

第25行是: c.init(Cipher.DECRYPT_MODE, secretKeySpec);

注意:
*服务器的1.6.0.12 …

java

394
推荐指数
10
解决办法
39万
查看次数

IntelliJ不显示项目文件夹

我有IntelliJ的问题.它在左侧的项目视图中不显示任何文件夹.我的设置是"查看方式:项目"如何管理它以便再次显示文件夹和包?我没有任何线索,因为我没有改变任何选择!

我正在使用IntelliJ 10.0.3.我正在研究一个Maven Lift Project.

intellij-idea

320
推荐指数
19
解决办法
19万
查看次数

实现Closeable或实现AutoCloseable

我正在学习Java,我找不到关于implements Closeableimplements AutoCloseable接口的任何好的解释.

当我实现一个时interface Closeable,我的Eclipse IDE创建了一个方法public void close() throws IOException.

我可以在pw.close();没有界面的情况下关闭流.但是,我无法理解如何close()使用该接口实现该方法.而且,这个界面的目的是什么?

另外我想知道:我怎么检查是否IOstream真的关闭了?

我正在使用下面的基本代码

import java.io.*;

public class IOtest implements AutoCloseable {

public static void main(String[] args) throws IOException  {

    File file = new File("C:\\test.txt");
    PrintWriter pw = new PrintWriter(file);

    System.out.println("file has been created");

    pw.println("file has been created");

}

@Override
public void close() throws IOException {


}
Run Code Online (Sandbox Code Playgroud)

java java-io

113
推荐指数
6
解决办法
10万
查看次数

如何使用Volley在Android中发送"multipart/form-data"POST

有没有人能够multipart/form-data在Android中使用Volley 完成发送POST?我没有成功尝试image/png使用POST请求上传到我们的服务器,如果有人的话,我很好奇.

我相信这样做的默认方法是public byte[] getPostBody()Request.java类中重写并在File那里附加一个空白的Header键作为边界.然而,我的文件转换成StringMap<String, String> postParams,然后有它的编码似乎再次钝,而不是真正的优雅.我的尝试也没有成功.这实际上是阻止我们切换到这个库的唯一因素.

无论如何,所有的想法和答案都非常感激.谢谢您的帮助.

android http android-volley

87
推荐指数
5
解决办法
15万
查看次数

canvas.toDataURL()SecurityError

所以我使用谷歌地图,我得到的图片,所以它看起来像这样

<img id="staticMap"
        src="http://maps.googleapis.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=13&size=600x300&maptype=roadmap
&markers=color:blue%7Clabel:S%7C40.702147,-74.015794&markers=color:green%7Clabel:G%7C40.711614,-74.012318
&markers=color:red%7Ccolor:red%7Clabel:C%7C40.718217,-73.998284&sensor=false">
Run Code Online (Sandbox Code Playgroud)

我需要保存它.我发现了这个:

function getBase64FromImageUrl(URL) {
    var img = new Image();
    img.src = URL;
    img.onload = function() {

        var canvas = document.createElement("canvas");
        canvas.width = this.width;
        canvas.height = this.height;

        var ctx = canvas.getContext("2d");
        ctx.drawImage(this, 0, 0);

        var dataURL = canvas.toDataURL("image/png");

        alert(dataURL.replace(/^data:image\/(png|jpg);base64,/, ""));

    };
}
Run Code Online (Sandbox Code Playgroud)

但是我遇到了这个问题:

Uncaught SecurityError:无法在'HTMLCanvasElement'上执行'toDataURL':可能无法导出受污染的画布.

我搜索了修复程序.我在这里找到了一个示例如何使用CORS,但我仍然无法将这两个代码绑在一起以使其工作.也许我这样做的方式不对,有一种更简单的方法吗?我正在尝试保存此图片,以便我可以将数据传输到我的服务器.所以也许有人做了这样的事情并知道如何按需要做.toDataURL()工作?

javascript canvas cors

74
推荐指数
3
解决办法
12万
查看次数

在锚标记内创建锚标记

在我的随机测试期间,我看到了一种行为,我将锚标记放在另一个锚标记内.我做了一个jsfiddle.

<a class="groupPopper">
     <a class="name"> content</a>
</a>?
Run Code Online (Sandbox Code Playgroud)

但在开发人员工具中它看起来不同:

在此输入图像描述

我相信我们不能将锚标记放在另一个锚标记内,因为单击内部锚点会将click事件冒泡到父锚标记,这不应该被允许.

我的假设是否正确?

html

65
推荐指数
4
解决办法
5万
查看次数

python:从zip打开文件而不临时解压缩

如何从zip存档中打开文件而不先解压缩?

我正在使用pygame.为了节省磁盘空间,我将所有图像都压缩了.是否可以直接从zip文件加载给定的图像?例如: pygame.image.load('zipFile/img_01')

python zipfile

60
推荐指数
4
解决办法
9万
查看次数

什么是"android.R.id.text1"?

我是Android开发的新手.在Notepad示例中,我看到了以下代码段:

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.noteslist_item, cursor,
        new String[] { Notes.TITLE }, new int[] { android.R.id.text1 });
Run Code Online (Sandbox Code Playgroud)

并在notelist_item.xml文件中:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"   <-----------HERE
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:gravity="center_vertical"
    android:paddingLeft="5dip"
    android:singleLine="true"
/>
Run Code Online (Sandbox Code Playgroud)

所以,我想知道,这是android.R.id.text1什么?

另外,我发现android.R.id.button1,button2,button3将在android.jar文件中.

它们是某些第三方控件的某种众所周知的ID吗?

谢谢

android

44
推荐指数
2
解决办法
6万
查看次数

如何从JSONObject检查值的类型?

我正在尝试获取存储在a中的值的类型JSONObject.

String jString = {"a": 1, "b": "str"};
JSONObject jObj = new JSONObject(jString);
Run Code Online (Sandbox Code Playgroud)

是否可以获取存储在key中的值的类型"a"; 类似的东西jObj.typeOf("a") = java.lang.Integer

java json

44
推荐指数
2
解决办法
7万
查看次数

如何处理jodatime由于时区偏移过渡而导致的非法瞬发

我想将joda设置DateTime为今天凌晨2点(参见下面的示例代码).但我得到了这个例外:

Exception in thread "main" org.joda.time.IllegalFieldValueException: Value 2 for hourOfDay is not supported: Illegal instant due to time zone offset transition: 2011-03-27T02:52:05.239 (Europe/Prague)
at org.joda.time.chrono.ZonedChronology$ZonedDateTimeField.set(ZonedChronology.java:469)
at org.joda.time.MutableDateTime.setHourOfDay(MutableDateTime.java:702)
Run Code Online (Sandbox Code Playgroud)

上面处理异常的正确方法是什么,或者DateTime在一天中的特定时刻创建一个?

示例代码:

MutableDateTime now = new MutableDateTime();
now.setHourOfDay(2);
now.setMinuteOfHour(0);
now.setSecondOfMinute(0);
now.setMillisOfSecond(0);
DateTime myDate = now.toDateTime();
Run Code Online (Sandbox Code Playgroud)

谢谢.

java jodatime

43
推荐指数
3
解决办法
3万
查看次数