小编Paŭ*_*ann的帖子

如何在Java和Objective-C(iPhone)之间使AES加密相同?

我正在加密objective-c中的字符串,并使用AES加密Java中的相同字符串,并且看到一些奇怪的问题.结果的第一部分与某个点匹配,但后来却不同,因此当我将Java的结果解码到iPhone上时,它无法对其进行解密.

我正在使用一个源代码字符串"现在然后这是什么废话.你知道吗?" 使用"1234567890123456"的键

加密的objective-c代码如下:注意:它是NSData类别,因此假设在NSData对象上调用该方法,因此'self'包含要加密的字节数据.

   - (NSData *)AESEncryptWithKey:(NSString *)key {
 char keyPtr[kCCKeySizeAES128+1]; // room for terminator (unused)
 bzero(keyPtr, sizeof(keyPtr)); // fill with zeroes (for padding)

 // fetch key data
 [key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding];

 NSUInteger dataLength = [self length];

 //See the doc: For block ciphers, the output size will always be less than or 
 //equal to the input size plus the size of one block.
 //That's why we need to add the size of one block here
 size_t bufferSize = dataLength + …
Run Code Online (Sandbox Code Playgroud)

java iphone encryption aes objective-c

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

在Eclipse中更改方法签名时,如何自动更新Javadoc?

我在我的Java项目中使用Eclipse IDE.

我有一个问题.我的项目中的方法有javadoc注释,如下所示:

/**
 * Retruns the string representation of a input stream
 * @param in
 * @return
 * @throws IOException
 */
public static String getStringFromInputStream (InputStream in) throws IOException {
    StringBuffer out = new StringBuffer();
    byte[] b = new byte[4096];
    for (int n; (n = in.read(b)) != -1;) {
        out.append(new String(b, 0, n));
    }
    return out.toString();
}
Run Code Online (Sandbox Code Playgroud)

现在我想知道,无论何时如果我在方法的签名中进行更改,这些更改都会自动反映在javadoc中.

java eclipse javadoc

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

我也需要针对参考类型变量的volatile吗?

我们经常使用它volatile来确保每个Thread都可以看到一个条件变量.

到目前为止,我看到这些volatile字段都是primitive type代码.

请问object现场有这个问题?例如:

class a {

   public String str;

   public List list;

}
Run Code Online (Sandbox Code Playgroud)

如果有一些线程会访问str和list,我必须添加'volatile'吗?

我想每次访问都Object将直接从中获取Heap,并且Object不会像原始类型一样进行缓存.

是对的吗?

java caching jvm visibility volatile

24
推荐指数
2
解决办法
6397
查看次数

Code Golf:熄灯

挑战

最短的代码按字符计数来解决输入灯输出板.

灯光输出板是一个不同大小的2d方形网格,由两个字符组成 - .用于关闭*的灯光和打开的灯光.

要解决电路板,必须关闭所有"灯".切换灯(即打开时关闭,关闭时打开)一次点亮5个灯 - 选择灯并且灯以+(加号)形状包围."选择"中间灯会解决问题:

.*.
***
.*.
Run Code Online (Sandbox Code Playgroud)

自熄灯!解决方案顺序无关紧要,输出将是一个新的电路板,在选择的灯泡上有标记.上面板的解决方案是

...
.X.
...
Run Code Online (Sandbox Code Playgroud)

关闭没有侧灯关闭的角落的灯不会溢出:

...
..*
.**
Run Code Online (Sandbox Code Playgroud)

在这种情况下,选择右下灯泡只会关闭3个灯泡.

测试用例

Input:
    **.**
    *.*.*
    .***.
    *.*.*
    **.**
Output:
    X...X
    .....
    ..X..
    .....
    X...X
Run Code Online (Sandbox Code Playgroud)
Input:
    .*.*.
    **.**
    .*.*.
    *.*.*
    *.*.*
Output:
    .....
    .X.X.
    .....
    .....
    X.X.X
Run Code Online (Sandbox Code Playgroud)
Input:
    *...*
    **.**
    ..*..
    *.*..
    *.**.
Output:
    X.X.X
    ..X.. 
    .....
    .....
    X.X..
Run Code Online (Sandbox Code Playgroud)

代码计数包括输入/​​输出(即完整程序).

language-agnostic code-golf rosetta-stone

23
推荐指数
4
解决办法
3008
查看次数

如何按版本号对文件名进行排序?

在目录"data"中是这些文件:

command-1.9a-setup
command-2.0a-setup
command-2.0c-setup
command-2.0-setup

我想对文件进行排序以获得此结果:

command-1.9a-setup
command-2.0-setup
command-2.0a-setup
command-2.0c-setup

我试过这个

find /data/ -name 'command-*-setup' | sort --version-sort --field-separator=- -k2 
Run Code Online (Sandbox Code Playgroud)

但输出是

command-1.9a-setup
command-2.0a-setup
command-2.0c-setup
command-2.0-setup

我找到的唯一方法给了我想要的输出

tree -v /data
Run Code Online (Sandbox Code Playgroud)

我怎样才能按需要的顺序对输出进行排序?

sorting bash shell version

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

ASN.1如何编码对象标识符?

我无法理解ASN.1的基本概念.

如果类型是OID,相应的数字是否实际编码在二进制数据中?

例如,在这个定义中:

id-ad-ocsp         OBJECT IDENTIFIER ::= { id-ad 1 }
Run Code Online (Sandbox Code Playgroud)

相应的1.3.6.1.5.5.7.48.1是否完全像这样编码在二进制文件中?

我问这个是因为我试图理解我在DER文件(证书)中看到的特定值,即04020500,我不知道如何解释它.

security binary encoding asn.1

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

git:如何从项目中分离库?filter-branch,subtree?

所以,我有一个更大的(闭源)项目,并且在这个项目的上下文中创建了一个在其他地方也可以使用的库,我想.

我现在想要在自己的项目中拆分库,它可以作为github或类似的开源.当然,图书馆(及其历史)应该不包含我们项目的痕迹.

git-subtree在这里似乎是一个解决方案,但它并不完全适合.

我的目录布局是这样的(因为它是一个Java项目):

  • 击剑比赛 (git workdir)
    • SRC
        • fencing_game
          • 运输 (我的图书馆)
            • 协议 (图书馆的一部分)
            • fencing (与库连接的主项目的一部分)
            • 客户端(与库连接的主项目的一部分)
            • server (与库连接的主项目的一部分)
          • 客户(主要项目的一部分)
          • 服务器(主项目的一部分)
          • ...... (主要项目的一部分)
    • 其他文件和目录(构建系统,网站等 - 主要项目的一部分)

拆分后,我希望库的目录布局如下所示(包括直接在粗体目录中的任何文件):

  • 我的图书馆(名字待定)
    • SRC
        • fencing_game
          • 运输 (我的图书馆)
            • 协议 (图书馆的一部分)

历史记录还应该只包含主项目历史中涉及存储库这一部分的部分.

第一眼看到了我git-subtree split --prefix=src/de/fencing_ame/transport,但这会

  1. 给我一棵树根transport(不会编译)和
  2. 包括transport/client,transport/servertransport/fencing目录.

第一点可以通过git subtree add --prefix=src/de/fencing_ame/transport <commit>在接收端使用来缓解,但我不认为git-subtree可以对导出这些子目录做很多事情.(这个想法真的是只能在这里分享完整的树).

我必须在git filter-branch这里使用吗?

拆分后,我希望能够导入回库在我的主要项目中,无论是使用Git树或混帐子模块,在一个单独的子目录,而不是它现在是.我想象这样的布局

  • 击剑比赛 (git workdir)
    • SRC
        • fencing_game
          • 运输 (空)
            • fencing (与库连接的主项目的一部分)
            • 客户端 …

git git-submodules git-filter-branch git-subtree

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

如何将密码从bash脚本传递给aptitude以安装mysql?

我正在编写一个简单的bash脚本来在Ubuntu上安装MySQL.

#!/bin/bash
apt-get update

# Install MySQL5 
aptitude -y install mysql-server mysql-client libmysqlclient15-dev
Run Code Online (Sandbox Code Playgroud)

但是MySQL提示输入密码和确认.如何传递root密码.我可以使用回音吗?

mysql bash installation ubuntu debian

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

bash如何知道变量名称的结束位置?

鉴于:

myvar=Hello
Run Code Online (Sandbox Code Playgroud)
  • echo $myvar - >显示Hello (到目前为止很好)
  • echo $myvar#world - >显示Hello#world(为什么?我以为它会抱怨这里没有这样的变量叫myvar#world)
  • echo ${myvar#world} - >显示Hello(再次,为什么?)

bash scripting

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

bash中"else if"和"elif"有什么区别?

我有以下shell脚本,它应该简单地将一些Java .ear/.war文件存放到JBoss:

SUCCESS=false
DEPLOY_PATH=/apps/jboss/server/default/deploy

E_NOARGS=75
M_USAGE="usage: $0 {rcm|hcm}"
M_MISSING_RCM="missing: rcm.war file not present"
M_MISSING_HCM="missing: hcm.ear or hcm.war file not present"

if [ -z "$1" ] 
then
  echo $M_USAGE
  exit $E_NOARGS
else
  M_START="deploying $1 ..."
  M_FINISH="finished deploying $1"
fi

until [ -z "$1" ]
do
  echo $M_START 
  case "$1" in
    rcm*)
      # do a hot-deploy of the rcm.war file
      # TODO: test if rcm.war file is present, error out if not
      if [ -e rcm.war ]
      then 
        cp -v rcm.war $DEPLOY_PATH/rcm.war …
Run Code Online (Sandbox Code Playgroud)

bash shell

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