小编Fra*_*zoa的帖子

java和.length上的数组边界

keys数组定义如下:

    keys = new char[] {resolv, '?', '?', '?', '?', '?', '?', 
                                '?', '?', '?', '?', '?', '?', 
                                '?', '?', '?', '?', '?', '?', 
                                '?', '?', '?', '?', '?', '?', 
                                '?', '?', '?', '?', '?', '?',
                                '?', '?', '?'};
Run Code Online (Sandbox Code Playgroud)

'resolv'是一个常量char值0x00,但这与此问题无关.

现在,这段代码有时会引发"java.lang.ArrayIndexOutOfBoundsException:length = 34; index = 34"异常:

protected void LoadKeyRects() {
    keyRects = new Rect[keys.length];
    // Solve key
    keyRects[0] = resRect;


    // Rest of keys
    int x, y;
    for (int i=1; i<keys.length; i++) {
        y = 214 + ( …
Run Code Online (Sandbox Code Playgroud)

java android

5
推荐指数
1
解决办法
518
查看次数

在 Python 中使用字节数组作为 AES 算法的密钥

我有一个字节数组,它是 128 位 AES 密钥,我想在 Python 脚本上使用该密钥,以使用上述密钥对一些信息进行加密。

我将密钥存储为十六进制字符串,例如“27821D90D240EA4F56D0E7612396C69E”(显然这不是真正的密钥,但具有相同的格式)。

我已经从该密钥生成了一个字节数组,这就是到目前为止我在其他语言(Java、C# 和 PHP)中使用 AES 密钥的方式,如下所示:

AES_KEY = bytearray.fromhex('27821D90D240EA4F56D0E7612396C69E')
Run Code Online (Sandbox Code Playgroud)

这工作正常,但是当我尝试使用它来创建密码时,它抱怨它需要第一个参数中的字符串:

cipher = AES.new(AES_KEY, AES.MODE_CBC, os.urandom(16));
Run Code Online (Sandbox Code Playgroud)

类型错误:参数 1 必须是字符串或只读缓冲区,而不是字节数组

我尝试从字节数组中获取字符串,如下所示:

AES_KEY = bytearray.fromhex('27821D90D240EA4F56D0E7612396C69E').decode()
Run Code Online (Sandbox Code Playgroud)

或者

AES_KEY = bytearray.fromhex('27821D90D240EA4F56D0E7612396C69E').decode('utf-8')
Run Code Online (Sandbox Code Playgroud)

无济于事,因为该键中有非 ASCII 和非 Unicode 值。

更换钥匙不是一个选择。

有任何想法吗?

预先非常感谢,

python cryptography aes

5
推荐指数
1
解决办法
4195
查看次数

将Reflections库添加到Eclipse项目中

我正在尝试将Reflections库添加到Eclipse Java项目中,以便根据我的需要使用它.问题是虽然我已经将reflection-0.9.9-uberjar.jar添加到我的项目的lib文件夹中,并且还添加到Build Path(实际上它也出现在"Referenced Libraries"下),但是构建器似乎没有识别它,所以这一行例如给我一个错误:

Reflections reflections = new Reflections("net.iberdroid.gameserver.cmds");

"Reflections cannot be resolved to a type"
Run Code Online (Sandbox Code Playgroud)

如果我尝试导入org.reflections,它说它既不能解决也不能解决.

有任何想法吗?

非常感谢提前,

java eclipse

4
推荐指数
1
解决办法
2777
查看次数

如何在 kotlin 正则表达式中使用反向引用?

我正在尝试在 kotlin 中使用带有反向引用的正则表达式以下列方式替换字符串的占位符:

来源:“这是一个带有 %02d 的 %s”

目标:“这是一个带有 <02d/> 的 <s/>”

所以我正在寻找这样的东西,但具有正确的语法,当然:

private fun escapePlaceHolders(text: String): String {
    return """%([^ ]+?)""".toRegex().replace(text, "<\1/>")
}
Run Code Online (Sandbox Code Playgroud)

显然,这段代码甚至无法编译,更不用说工作了。问题是我不知道如何在替换函数中使用反向引用,如果可以的话。

regex kotlin

4
推荐指数
2
解决办法
1440
查看次数

Android Studio proguardRelease FAILED由于空输出jar库

我已经将Eclipse中的项目导入到Android Studio 1.0.1中,该项目包含Android库项目(RuletaAfortunadaCore)和Android项目(RuletaAfortunada),还有一些第三方库依赖项.在导入过程中一切似乎都很好,但现在当我尝试构建它时,我从Gradle收到此错误消息:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':ruletaAfortunadaCore:proguardRelease'.
> java.io.IOException: The output jar is empty. Did you specify the proper '-keep' options?
Run Code Online (Sandbox Code Playgroud)

从构建过程开始的整个输出:

Executing tasks: [clean, :ruletaAfortunada:compileDebugSources, :facebookSDK:compileDebugSources, :ruletaAfortunadaCore:compileDebugSources]

Configuration on demand is an incubating feature.
:facebookSDK:clean
:ruletaAfortunada:clean UP-TO-DATE
:ruletaAfortunadaCore:clean
:facebookSDK:compileLint
:facebookSDK:copyReleaseLint UP-TO-DATE
:facebookSDK:mergeReleaseProguardFiles UP-TO-DATE
:facebookSDK:preBuild
:facebookSDK:preReleaseBuild
:facebookSDK:checkReleaseManifest
:facebookSDK:prepareReleaseDependencies
:facebookSDK:compileReleaseAidl
:facebookSDK:compileReleaseRenderscript
:facebookSDK:generateReleaseBuildConfig
:facebookSDK:generateReleaseAssets UP-TO-DATE
:facebookSDK:mergeReleaseAssets
:facebookSDK:generateReleaseResValues UP-TO-DATE
:facebookSDK:generateReleaseResources
:facebookSDK:packageReleaseResources
:facebookSDK:processReleaseManifest
:facebookSDK:processReleaseResources
:facebookSDK:generateReleaseSources
:facebookSDK:compileReleaseJava
:facebookSDK:processReleaseJavaRes UP-TO-DATE
:facebookSDK:packageReleaseJar
:facebookSDK:compileReleaseNdk
:facebookSDK:packageReleaseJniLibs UP-TO-DATE
:facebookSDK:packageReleaseLocalJar …
Run Code Online (Sandbox Code Playgroud)

eclipse android gradle android-studio

3
推荐指数
1
解决办法
2845
查看次数

Javascript str_replace一次很多

是否有任何简单的方法可以在一个指令中用多个字符的javascript替换每个字符的不同替换,就像在PHP中可能的那样?

我的意思是,像:

replace('áéíóú', 'aeiou');
Run Code Online (Sandbox Code Playgroud)

用a替换á,用e替换é,依此类推......

非常感谢提前,

javascript

2
推荐指数
1
解决办法
745
查看次数

为不可修改的列表实现迭代器

我正在实现一个基于AbstractSequentialList的不可修改的列表.现在,根据Oracle的文档:

对于不可修改的列表,程序员只需要实现列表迭代器的hasNext,next,hasPrevious,previous和index方法.

问题是我似乎必须提供删除,设置和添加方法的实现,尽管由于列表的不可修改性质,根本不需要这些实现,否则编译器会抱怨因为这些方法没有实现.

那么,我做错了什么,或者这是真正的方法吗?我应该实现这样的方法并在其中抛出某种异常吗?

非常感谢提前,

java iterator list

2
推荐指数
1
解决办法
151
查看次数

Java遍历一组类

我有以下代码:

Reflections reflections = new Reflections("com.mypackage.cmds");
Set<Class<? extends Command>> commandClasses = reflections.getSubTypesOf(Command.class);
Run Code Online (Sandbox Code Playgroud)

它的作用是存储在com.mypackage.cmds包中的Command类的所有类后代.

现在我想做的是迭代或遍历返回的集合,因此每个类都加载调用Class.fromName方法.我怎样才能做到这一点?

非常感谢提前,

java reflection

1
推荐指数
1
解决办法
2812
查看次数