小编Qiu*_*Qiu的帖子

什么加密方案满足十进制明文和密文的要求并保留长度?

我需要一种加密方案,其中明文和密文完全由十进制数字组成.

另外,明文和密文的长度必须相同.

底层加密算法也应该是行业标准.我不介意它是对称的(例如AES)还是非对称的(例如RSA) - 但它必须是一个公认的算法,我可以获得一个FIPS-140批准的库.(否则它将无法通过安全审查阶段).

使用AES OFB可以保留基于十六进制的输入的长度(即每个字节有256个可能的值:0x00 - > 0xFF).但是,这对我来说不起作用,因为明文和密文必须完全是十进制的.

注意:"完全小数"可以用两种方式解释 - 这两种方式都可以满足我的要求:

  1. 输入和输出字节是字符'0' - >'9'(即字节值:0x30 - > 0x39)
  2. 输入和输出字节有100(十进制)值:0x00 - > 0x99(即BCD)

更多信息:最大明文和密文长度可能是10个十进制数字.(即如果使用'0' - >'9'则为10个字节,如果使用BCD则为5个字节)

请考虑以下示例以了解AES失败的原因:输入字符串是8位数字.最大8位数字是:99999999在十六进制中,这是:0x5f5e0ff

这可以视为4个字节:<0x05> <0xf5> <0xe0> <0xff>

如果我使用AES OFB,我将得到4字节输出.

最高可能的4字节密文输出为<0xFF> <0xFF> <0xFF> <0xFF>

将其转换回整数给出:4294967295即10位数字.

==>两位数太长.

最后一件事 - 所需的任何键/ IV的长度没有限制.

c++ encryption cryptography aes

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

IOS8 - [UIlabel sizeToFit]导致EXC_BAD_ACCESS KERN_INVALID_ADDRESS崩溃

我们的用户在下面的方法中遇到重复崩溃.坠机事件中的行的一个经常发生:[lbl sizeToFit](的lbl.变量重新初始化和重复使用,以我的理解,这应该不会造成任何问题).

这些崩溃只发生在iOS8上(同样的方法在ios7上使用了很长时间没有任何问题).我无法重建这个崩溃我自己.目前,我唯一的主要是来自'sizeToFit'苹果文档:

..在某些情况下,如果视图没有超视图,它可能会将自身调整为屏幕边界.因此,如果您希望给定视图将其自身调整为其父视图,则应在调用此方法之前将其添加到父视图.

但是,我不知道这会如何产生糟糕的内存参考.

-(void)setUpHeaders:(NSInteger)fortype{
    headers = [NSMutableArray array];
    if(fortype == GROUP_BY_TIME){

    for(int i=0;i<4;i++){
        UIView* header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 68)];
        header.backgroundColor = [UIColor whiteColor];
        [headers addObject:header];
    }

    int today = (int)[NSDate dayOfTheWeekOfDate:[NSDate date]];
    int firstDayOfTheWeek = (int)[defaults integerForKey:FIRST_DAY_IF_THE_WEEK_KEY];
    NSString* restOfTheWeek = nil;
    if(today == ((firstDayOfTheWeek + 4) % 7) + 1) restOfTheWeek = MyLocalizedString(@"THE COMING WEEK", @"THE COMING WEEK") ;
    else if(today == ((firstDayOfTheWeek + 5) % 7) + 1) restOfTheWeek = …
Run Code Online (Sandbox Code Playgroud)

exc-bad-access objective-c uilabel sizetofit ios8

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

计算具有相同汉明重量的二进制数的所有排列的最快算法是什么?

我想要一个算法来计算具有给定汉明重量的固定大小二进制数的所有排列.例如,如果汉明重量为2且二进制大小为4,则有以下输出:

0011
0110
0101
1100
1010
1001
Run Code Online (Sandbox Code Playgroud)

C(n,r)在该示例C(4,2)中那样计算这种组合的数量,其为6.

请注意,您可以通过将数字从0增加到2 ^ n并查看计数是否正常来解决此问题.但是,它不是一个快速的解决方案.我正在考虑使用C++中的bitset类解决问题,我需要增加N.

我想补充一点,这个问题有一个明显的递归算法.由于堆栈溢出,这不是一个好的答案.我从Gosper的黑客那里得到了一个很好的答案.虽然,我需要扩大输入,并可能稍后使用MPI实现,我需要一个可扩展的库.unsigned int不够大,我宁愿像bitset一样可扩展且快速的库.此处的解决方案不适用,而bitset库中没有添加.还有其他方法吗?

algorithm combinations hammingweight

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

错误:“(vlog-2110)非法引用网络”

我在 System Verilog 中有一个简单的 fifo 代码。我收到几条vlog-2110 illegal reference to net错误消息。我查看了之前的 stackoverflow 指南,并没有发现我正在做的事情有什么问题。请帮忙!!!

我在下面给出我的错误消息,然后是我的代码。我将非常感激。感谢您的时间。

错误信息:

vlog -work work -sv -stats=none C:/Users/Single_FIFO.sv Model Technology ModelSim DE vlog 10.4 Compiler 2014.12 Dec 3 2014 -- 编译模块 fifo_core_and_cntl
错误:C:/Users/Single_FIFO.sv(24): (vlog -2110) 非法引用网络“占用”。
错误:C:/Users/Single_FIFO.sv(26): (vlog-2110) 非法引用网络“空”。
错误:C:/Users/Single_FIFO.sv(28): (vlog-2110) 非法引用网络“空”。
错误:C:/Users/Single_FIFO.sv(30): (vlog-2110) 非法引用网络“满”。
错误:C:/Users/Single_FIFO.sv(32): (vlog-2110) 非法引用网络“满”。...... ......

我的简单先进先出代码:它的小违规部分,如下所示。

module fifo_core_and_cntl (data_in, data_put, data_get, clk, reset_n, data_out, occucy, empty, full); 
  input [7:0]data_in;
  input data_put, data_get, clk, reset_n;
  output [7:0]data_out;
  output empty, full;
  output [4:0]occucy;
  logic …
Run Code Online (Sandbox Code Playgroud)

system-verilog

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

有没有办法计算java中的指令数量

我想知道我的java代码消耗了多少指令来执行.我正在寻找一个开始指令计数的api,最后应该返回最终的指令总数

例如:

public static void main()
{
  int a=0;
  int b=0;
  int c=0;
  startCountinst();
  if(a==b)
  {
     c++;
  }
  int n = stopCountinst();
}
Run Code Online (Sandbox Code Playgroud)

最后,n应表示调用后执行的指令总数startCountinst().在java中可以计算指令吗?

java cpu instruction-set

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

java.lang.NoClassDefFoundError:org.bouncycastle.jce.provider.BouncyCastleProvider

我正面临着用我的配置Bouncy Castle的问题websphere.我正在研究pdf文档签名,它需要Bouncy Castle的依赖.我正在使用websphere v8.5,java 6bcprov-jdk15on-1.47.jar

目前我已将此jar包含在我的项目库中,并将其部署到WAS.它的投掷错误:

java.lang.NoClassDefFoundError:org.bouncycastle.jce.provider.BouncyCastleProvider.

收到此错误后,我曾尝试配置充气城堡,以WAS通过把bcprov-jdk15on-1.47.jar[WAS_HOME]/java/jre/lib/ext/和更新java.security.之后,当我启动应用程序服务器但服务器未启动时.

你能否就此提供指导?

java bouncycastle websphere-8

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

Mockito嘲笑一个Response类

当我尝试模拟javax.ws.rs.core时,Response我收到一条错误消息:

无法创建JAX-RS运行时委托

为什么会这样?

 Response response = Mockito.mock(Response.class);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试模拟HttpServletResponse时,没有问题!

 HttpServletResponse response1 = Mockito.mock(HttpServletResponse.class);
Run Code Online (Sandbox Code Playgroud)

java jax-rs mockito

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

实施FOR-LOOP和FOR-GENERATE之间的实际区别是什么?什么时候使用一个比另一个好?

我们假设我必须在std_logic_vector上测试不同的位.实现一个单独的进程,每个位的for循环或者使用for-generate来实例化'n'进程,每个进程测试一位是不是更好?

FOR-LOOP

my_process: process(clk, reset) begin
  if rising_edge (clk) then
    if reset = '1' then
      --init stuff
    else
      for_loop: for i in 0 to n loop
        test_array_bit(i);
      end loop;
    end if;      
  end if; 
end process;
Run Code Online (Sandbox Code Playgroud)

FOR-GENERATE

for_generate: for i in 0 to n generate begin
my_process: process(clk, reset) begin
  if rising_edge (clk) then
    if reset = '1' then
      --init stuff
    else
      test_array_bit(i);
    end if;
  end if; 
end process;
end generate;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,对FPGA和ASIC实施会产生什么影响?CAD工具可以轻松应对什么?

编辑:只是添加我给一个帮助人的回复,让我的问题更清楚:

例如,当我在ISE上使用for循环运行一段代码时,综合摘要给了我一个公平的结果,花了很长时间来计算所有内容.当我重新编写我的设计时,这次使用for-generate和几个进程,我使用了更多的区域,但是该工具能够更快地计算所有内容,并且我的计时结果也更好.那么,它是否意味着一个规则,总是更好地使用for-generate,需要额外的面积和更低的复杂性,或者是我必须验证每一个实现可能性的情况之一?

for-loop fpga vhdl asic hardware-programming

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

通过Verilog VPI将256位线路传递给C功能

我在Verilog中有256位值:

reg [255:0] val;
Run Code Online (Sandbox Code Playgroud)

我想定义一个使用VPI调用外部C的系统任务$ foo,所以我可以像这样调用$ foo:

$foo(val);
Run Code Online (Sandbox Code Playgroud)

现在,在C定义函数"富",我不能简单地读取参数作为一个整数(PLI_INT32),因为我有太多的位,以适应在其中的一个.但是,我可以将参数作为字符串读取,这与字节数组相同.这是我写的:

static int foo(char *userdata) {
  vpiHandle systfref, args_iter, argh;
  struct t_vpi_value argval;
  PLI_BYTE8 *value;

  systfref = vpi_handle(vpiSysTfCall, NULL);
  args_iter = vpi_iterate(vpiArgument, systfref);

  argval.format = vpiStringVal;
  argh = vpi_scan(args_iter);
  vpi_get_value(argh, &argval);
  value = argval.value.str;

  int i;

  for (i = 0; i < 32; i++) {
    vpi_printf("%.2x ", value[i]);
  }
  vpi_printf("\n");

  vpi_free_object(args_iter);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

如您所见,此代码将参数作为字符串读取,然后打印出字符串中的每个字符(也称为字节).这几乎完美.但是,该字节00始终被读取为20.例如,如果我按如下方式分配Verilog reg:

 val = 256'h000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f;
Run Code Online (Sandbox Code Playgroud)

并使用它调用它$foo(val),然后C函数在模拟时打印它:

VPI: 20 01 02 …
Run Code Online (Sandbox Code Playgroud)

c verilog

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

定义包内的接口

IEEE Std 1800-2012中,我们可以找到包的描述和这些信息:

类型,网络,变量,任务,函数,序列,属性和检查器可以在包中声明

我想知道,如果有任何特殊原因导致无法在包内定义接口?在我看来它可能是有用的,但显然标准的创建者不会同意.

system-verilog

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