小编Tom*_*ito的帖子

RSA块的数据太多失败.什么是PKCS#7?

谈论 javax.crypto.Cipher

我试图使用加密数据,Cipher.getInstance("RSA/None/NoPadding", "BC")但我得到了例外:

ArrayIndexOutOfBoundsException: too much data for RSA block

看起来是与"NoPadding"相关的东西,因此,阅读填充,看起来像CBC是这里使用的最佳方法.

我在google上发现了一些关于"RSA/CBC/PKCS#7"的内容,这是什么"PKCS#7"?为什么它没有列在太阳的标准算法名称上

更新:

我想知道,如果是填充问题,为什么这个例子运行得很好?

import java.math.BigInteger;
import java.security.KeyFactory;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import java.security.spec.RSAPrivateKeySpec;
import java.security.spec.RSAPublicKeySpec;

import javax.crypto.Cipher;

/**
 * Basic RSA example.
 */
public class BaseRSAExample
{
    public static void main(
        String[]    args)
        throws Exception
    {
        byte[]           input = new byte[] { (byte)0xbe, (byte)0xef };
        Cipher          cipher = Cipher.getInstance("RSA/None/NoPadding", "BC");
        KeyFactory       keyFactory = KeyFactory.getInstance("RSA", "BC");

        // create the keys

        RSAPublicKeySpec pubKeySpec = new RSAPublicKeySpec( …
Run Code Online (Sandbox Code Playgroud)

java security cryptography

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

如何回显变量和数字的总和?

我有一个变量x=7,我想回应它加一个,echo ($x+1)但我得到:

bash:意外标记`$ x + 1'附近的语法错误

我怎样才能做到这一点?

linux shell scripting

11
推荐指数
2
解决办法
5万
查看次数

可以强制AVFoundation播放本地.ts文件吗?

显然,AVFoundation(和Quicktime X)可以分解和播放正确编码的.ts容器,因为.ts容器基本上是HTTPS直播.

短期建立一个本地Web服务,服务的.m3u8和相关.ts的文件,我真的很想能够之一:说服AVURLAsset和/或URLAssetWithURL接受本地文件.m3u8URI就好像它是一个HTTP URI,或者更好的,能够用于AVQueuePlayer加载和播放一系列.ts文件,而无需跳过直播流媒体.

我之所以要这样做,是因为我需要以一种零碎的方式在本地生成电影资产 - 整个资产不会立即可用,而是随着时间的推移而产生.显然,这有助于AVQueuePlayer我的资产碎片包装在.ts容器中,但由于各种原因.所有这些听起来都非常适合"本地"直播.

我怀疑URLAssetWithURL字符串的一些限定条件是否传递给它,然后设置一些属性来表示它正在查看一个实时流媒体源,这反过来告诉AVPlayer/ AVQueuePlayer期望.ts形式的曲目.它可能会看到HTTP并确定这是实时流式传输.

所以我的问题是:一个人如何"愚弄"AVFoundation来处理本地.m3u8文件,就像远程处理一样?

奖金问题是:是否有人(如果是这样的话)能够AVAsset.ts文件中创建一个文件,以便资产返回资产轨道的状态(准备回放)?

TIA!

macos avfoundation http-live-streaming ios avplayer

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

我无法分发JAXB封闭代码?

http://jaxb.java.net/上,它表示JAXB的双重许可证包含CDDL v1.0和GPL v2;

CDDL说:

  1. 分配义务3.1.源代码的可用性.您以可执行形式分发或以其他方式提供的任何涵盖软件也必须以源代码形式提供,并且源代码表单必须仅根据本许可证的条款分发.

那么,我不能在没有打开代码的情况下使用JAXB?

--update

"您分发的任何涵盖软件......";

1.3."涵盖软件"是指(a)原始软件,或(b)修改,或(c)包含原始软件的文件与包含修改的文件组合,在每种情况下包括其中的部分. https://glassfish.dev.java.net/public/CDDL+GPL.html

我开发的软件不被视为"包含原始软件的文件与包含修改的文件的组合"

java xml licensing jaxb

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

Java如何使用"+"进行字符串连接?

我读到了Java使用+=运算符的方式StringBuilder.
操作是否相同("a" + "b")

java string

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

试图了解Java RSA密钥大小

钥匙发生器的尺寸为1024,那么为什么印刷尺寸为635和162?

import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;

public class TEST {

    public static KeyPair generateKeyPair() throws NoSuchAlgorithmException, NoSuchProviderException {
    KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA", "BC");
    keyPairGenerator.initialize(1024);
    return keyPairGenerator.generateKeyPair();
    }

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

    KeyPair keyPair = generateKeyPair();
    RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();
    RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();

    System.out.println("Size = " + privateKey.getEncoded().length);
    System.out.println("Size = " + publicKey.getEncoded().length);

    }

}
Run Code Online (Sandbox Code Playgroud)

java encryption rsa

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

是否有用于mp4文件的Java API?

可以使用这个mp3 SPI支持处理Mp3文件,但我找不到类似于mp4文件的东西.

任何帮助,将不胜感激.

--update

我想要做的是获取文件的大小,就像使用此代码处理wave文件一样:

AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file);
AudioFormat format = audioInputStream.getFormat();
long audioFileLength = file.length();
int frameSize = format.getFrameSize();
float frameRate = format.getFrameRate();
float durationInSeconds = (audioFileLength / (frameSize * frameRate));
Run Code Online (Sandbox Code Playgroud)

- 回答

以下是使用@mdma(IBM工具包)提示的答案代码:

/**
 * Use IBMPlayerForMpeg4SDK to get mp4 file duration.
 * 
 * @return the mp4File duration in milliseconds.
 */
public static long getMp4Duration(File mp4File) throws IllegalStateException, IOException {
PlayerControl playerControl = PlayerFactory.createLightweightMPEG4Player();
playerControl.open(mp4File.getAbsolutePath());
long mili = playerControl.getDuration();
// int sec = (int) ((mili …
Run Code Online (Sandbox Code Playgroud)

java audio file-io mp4

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

Flash Professional和Flash Builder之间有什么区别?

我在网络上找不到比较,那么,Flash Professional和Flash Builder之间的区别是什么?

--update

我在视频中看到我可以在Flash Professional中编辑一些代码.我刚看到Flash Builder中的编码.所以,我的理解是Flash Professional可以完成Flash Builder的功能,但不会执行相反的操作.这样对吗?

flash flash-cs4 flash-builder

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

Python的"产量"行为

我正在阅读yieldpython中的关键字,并试图了解运行此示例:

def countfrom(n):
    while True:
        print "before yield"
        yield n
        n += 1
        print "after yield"

for i in countfrom(10):
    print "enter for loop"
    if i <= 20:
        print i
    else:
        break
Run Code Online (Sandbox Code Playgroud)

输出是:

before yield
enter for loop
10
after yield
before yield
enter for loop
11
after yield
before yield
enter for loop
12
after yield
before yield
enter for loop
13
after yield
before yield
enter for loop
14
after yield
before yield
enter for loop …
Run Code Online (Sandbox Code Playgroud)

python yield

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

输入函数时的SIGSEGV

只是输入一个函数会导致分段错误的原因是什么?

输入的功能如下:

21:  void eesu3(Matrix & iQ)
22:  {
Run Code Online (Sandbox Code Playgroud)

这里Matrix是一个struct.使用GDB运行时,回溯会产生:

(gdb) backtrace 
#0  eesu3 (iQ=...) at /home/.../eesu3.cc:22
#1  ...
Run Code Online (Sandbox Code Playgroud)

GDB没有透露具体是什么iQ.在...字面上有.什么可能导致这个?

海湾合作委员会:(Ubuntu/Linaro 4.6.3-1ubuntu5)4.6.3

程序内置 -O3 -g

来电者喜欢:

Matrix q;
// do some stuff with q
eesu3(q);
Run Code Online (Sandbox Code Playgroud)

这里没什么特别的

我用valgrind重新编写程序:

valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=20 --track-fds=yes <prgname>
Run Code Online (Sandbox Code Playgroud)

输出:

==2240== Warning: client switching stacks?  SP change: 0x7fef7ef68 --> 0x7fe5e3000
==2240==          to suppress, use: --max-stackframe=10076008 or greater
==2240== Invalid write of size 8
==2240==    at 0x14C765B: eesu3( …
Run Code Online (Sandbox Code Playgroud)

c++ linux gdb segmentation-fault

10
推荐指数
2
解决办法
3859
查看次数