Thứ Hai, 30 tháng 4, 2018

sinh chỉnh hợp chập k của n phần tử java

public class Permutation
{
    public static void perm1(String s) { perm1("", s); }
    public static void perm1(String prefix, String s)
    {
 int N = s.length();
 if (N == 0) System.out.println(prefix);
 else
     {
  for(int i = 0; i < N; i++)
      perm1(prefix+s.charAt(i), s.substring(0, i) + s.substring(i+1, N));
     }
    }
    public static void perm2(String s, int k)
    {
 perm2("", s, k);
    }
    public static void perm2(String prefix, String s, int k)
    {
 int N = prefix.length();

 int M = s.length();

 if(N == k) System.out.println(prefix);
 else
     {
  for(int i = 0; i < M; i++)
      perm2(prefix+s.charAt(i), s.substring(0, i) + s.substring(i+1, M), k);
     }
    }
    public static void main(String[] args)
    {
 String alphabet = "abcdefghijklmnopqrstuvwxyz";
 int N = Integer.parseInt(args[0]);
 int K = Integer.parseInt(args[1]);
 String elements = alphabet.substring(0, N);
 perm2(elements, K);
    }
 
    
}

Chủ Nhật, 15 tháng 4, 2018

What data is saved in RSA private key?

You can print the data with (change PEM to DER if required):
openssl rsa -in Alice.key -text -inform PEM -noout
The following data is stored:
  • Modulus (n=pq)
  • Public exponent (e)
  • Private exponent (d=e1(modϕ(n)))
  • First prime (p)
  • Second prime (q)
  • First exponent, used for Chinese remainder theorem (dP=d(modp1))
  • Second exponent, used for CRT (dQ=d(modq1))
  • Coefficient, used for CRT (qinv=q1(modp))
Private-Key: (4096 bit)
modulus:
    00:c3:fc:63:90:1e:4c:c6:7f:10:9b:d9:be:67:0b:
    3f:06:57:40:d5:7c:b4:d7:54:4e:7a:21:7c:b5:d5:
    88:f4:07:3d:fa:0a:34:c7:28:10:b2:ba:b3:d7:27:
    6b:64:38:1c:3b:31:cd:5a:15:67:96:65:a1:73:79:
    ec:bc:ce:34:d7:e9:92:38:62:72:16:14:8b:c8:2d:
    e8:20:8d:dc:dc:34:f5:6f:4f:d5:4c:08:aa:55:22:
    31:38:97:3c:81:bd:e3:33:58:e6:f9:ce:66:ac:af:
    b4:f5:57:05:14:f6:28:d8:09:e8:0d:f8:eb:2f:50:
    a0:f3:1d:75:28:0c:11:43:ae:9b:7d:9f:9a:ff:be:
    39:d9:75:55:4c:d4:d0:fb:07:70:3c:c4:ba:2f:7a:
    c1:1e:2c:cd:35:61:1d:97:5f:39:54:2b:10:6a:f0:
    54:c3:78:19:f2:da:3a:57:f1:a2:0d:76:04:b5:76:
    99:98:41:c7:44:ea:d1:ec:ee:84:cb:7e:54:bd:cd:
    d5:1c:9f:8e:89:90:f3:df:37:ab:e7:00:ab:8e:a3:
    e8:18:7c:8b:27:d7:7a:be:a3:db:6f:1a:cb:a5:52:
    05:b4:6a:9f:ca:1b:8b:4c:9d:ad:a4:5b:3b:35:6b:
    3f:67:44:b2:cb:57:76:d7:e8:09:6e:c5:a4:08:97:
    fa:94:ff:36:05:f1:a5:5f:15:92:0b:31:a4:bc:03:
    13:2c:38:18:e0:8d:57:de:7a:4d:f2:ac:89:22:b0:
    e1:76:d5:24:d4:3b:7e:6d:d9:0a:db:6e:41:c0:85:
    ce:aa:52:2a:73:3e:21:36:50:d1:5a:dc:2f:2c:86:
    ea:77:1c:e3:30:ca:27:36:ab:67:4e:e6:97:38:4f:
    61:54:07:ca:37:c6:bc:9b:b7:7d:e8:3f:ef:46:81:
    ea:61:90:0f:09:04:cb:84:66:5f:37:cb:65:22:81:
    19:aa:36:3d:22:6d:0b:4c:c4:0a:a5:5d:36:f3:63:
    88:41:0c:2b:d2:f8:29:2f:68:7c:4c:db:1e:fa:53:
    f2:5e:f2:38:b9:02:70:f5:22:68:6a:3a:f4:ec:9c:
    52:85:8a:15:9f:75:81:e6:a9:5c:bf:df:ca:24:2a:
    4e:18:eb:ec:2f:e4:01:fc:24:8a:d0:32:e9:d2:c0:
    26:2e:09:70:f5:b8:d2:ca:e7:bd:57:6b:22:57:30:
    3b:a7:e5:de:d4:ef:91:73:cc:a8:77:9a:73:03:f9:
    36:ff:62:76:93:4c:d3:bb:a3:3d:60:bb:b0:7c:98:
    75:d7:09:7c:ff:c4:67:3c:6c:0b:d6:32:fb:d8:b9:
    1d:08:fd:84:9d:a5:9c:f8:27:f0:d8:52:4a:04:29:
    10:c6:9b
=========================================================================
publicExponent: 65537 (0x10001)
=========================================================================
privateExponent:
    51:e4:0b:d6:14:53:10:3d:d7:ba:c7:68:ff:b5:7b:
    48:32:fd:2c:37:47:79:12:09:18:8f:15:85:05:0c:
    8c:aa:da:02:b8:71:05:26:80:93:ad:df:a7:6f:19:
    38:6f:19:9c:c2:5a:83:e1:9d:bf:02:08:4c:30:0d:
    f3:76:56:2e:41:b2:8f:4c:d3:4e:d6:96:f1:b5:fc:
    e0:5d:66:83:bc:bd:31:1d:b2:8a:6a:b4:81:8e:1f:
    f2:fd:7e:92:d7:bd:2f:9f:5e:23:d3:52:a3:a5:67:
    7f:7c:34:eb:65:4f:fb:b5:67:f9:2e:a1:56:cb:e1:
    f4:b3:c2:58:51:72:85:4d:58:3b:4d:8d:7e:7f:05:
    bd:0f:81:ec:f0:9f:c1:c4:81:e9:62:6a:49:9c:89:
    45:0a:83:54:62:97:f2:c0:1f:3c:44:22:40:0c:db:
    de:31:38:e6:78:b9:18:36:26:f8:68:ef:de:c3:07:
    ba:cf:01:6c:92:91:d4:e6:75:26:72:4b:06:64:13:
    40:3a:8b:5c:7f:ec:e6:c0:64:5b:c9:b3:e5:8e:27:
    54:d3:f5:71:58:60:39:78:4e:20:46:9a:01:22:1c:
    b0:1e:3d:56:3d:dc:1e:cf:63:d6:e1:28:04:52:23:
    d4:0a:a8:8a:be:a9:31:de:0a:d2:f6:52:6c:24:d4:
    d6:e1:dc:99:d9:ef:65:a5:a6:49:2c:ce:f9:d3:3f:
    55:41:14:a0:36:f9:3f:42:39:90:e6:7d:70:26:92:
    c6:91:8d:a6:9f:6c:64:73:6c:cd:35:a5:56:f7:f6:
    81:77:ff:65:0f:41:49:e9:cd:74:bd:1f:d9:34:74:
    0c:04:a7:6c:c4:a4:a2:88:47:81:ca:96:db:78:23:
    67:b7:95:0b:d1:78:c2:52:14:70:b7:af:b0:57:b7:
    d1:b7:43:61:1e:3b:ba:dd:be:2a:ff:ee:92:23:e8:
    44:5c:4f:9a:a0:b0:8b:2e:91:d3:a8:75:e9:dc:05:
    c6:0b:63:9a:e6:e3:51:34:01:00:61:84:73:ec:b3:
    3d:7f:65:38:ef:11:e3:6a:e2:4f:cd:02:81:fc:66:
    14:32:bd:21:02:9b:0a:09:8b:f3:c5:7b:17:1d:6b:
    97:59:9a:4c:01:e6:05:49:f8:eb:d9:fd:9b:a6:c0:
    63:91:93:53:c8:7b:f2:71:97:14:f1:2b:8f:8d:92:
    41:08:fa:1d:8c:8d:7b:63:6d:ae:a2:c9:c4:81:08:
    33:9e:57:1f:a6:20:7b:7d:41:8e:19:bd:91:64:83:
    ca:38:98:32:26:50:af:b7:0e:32:8d:e2:6e:e2:ab:
    26:aa:39:ae:e4:f7:8d:b0:56:b8:71:0f:17:03:17:
    56:01
=========================================================================
prime1:
    00:e8:4e:e9:36:b3:cb:42:43:db:ab:c1:05:9f:f8:
    4a:60:17:67:03:f1:63:45:8d:3a:dc:db:30:39:f8:
    a5:d6:29:a8:6e:a4:79:9f:8a:26:53:d6:ae:7e:6e:
    94:92:f6:8b:e3:6b:72:01:13:ac:f1:f3:c7:3b:64:
    44:fa:0f:02:e3:59:3f:89:10:ec:2b:c9:3a:5e:12:
    dd:03:54:ca:cf:16:dd:2b:32:90:55:54:c0:bf:21:
    86:83:91:34:80:d0:ef:0b:2b:26:5a:50:b0:a7:dd:
    f3:48:d8:e3:19:4a:28:ae:32:5c:0b:68:7b:cc:f6:
    c4:68:ea:b8:0e:2d:7a:73:63:23:06:1d:93:7c:c6:
    db:64:52:2a:ab:e1:44:ed:d3:2e:a1:d3:b5:63:82:
    8e:8a:04:e4:86:00:ed:ba:3b:d3:7b:ff:f7:f7:e1:
    30:89:65:92:57:89:d3:be:bb:b1:94:cf:36:06:17:
    15:8a:d8:da:65:ed:b6:91:97:cd:a8:d4:9b:5c:42:
    65:74:4f:6c:78:15:25:3e:d1:a1:8f:aa:c8:c9:20:
    07:dd:2f:c9:5c:11:e7:ac:08:74:cb:b8:3a:17:a1:
    55:13:f1:b2:af:01:5f:0e:c3:bd:bb:83:de:d7:fe:
    c9:73:08:95:45:1c:d6:41:e2:39:0b:7d:c7:86:3f:
    ca:3b
=========================================================================
prime2:
    00:d7:f9:2d:1f:5f:5e:d4:04:3b:29:39:bb:4d:67:
    d5:a6:41:08:59:39:19:f2:ee:75:8c:62:b9:10:7f:
    3d:ff:2a:82:a8:1a:29:2d:26:a8:11:32:09:e6:f0:
    dc:8c:43:8f:dd:61:65:13:c4:46:3c:01:e6:30:8d:
    25:90:a9:16:87:96:08:10:ab:19:f0:f1:fb:b5:56:
    3e:86:3f:18:fe:7c:33:90:a4:c3:92:a6:1d:49:8d:
    29:49:2c:02:1f:0b:53:61:1a:1c:14:53:eb:a7:c6:
    97:ff:3a:99:ab:26:f7:5e:ca:94:4f:8c:55:2a:e0:
    71:a2:0a:d3:2b:37:16:7c:d1:79:ae:ab:31:e1:33:
    0c:04:a3:8a:ee:ba:97:ed:ed:e8:10:eb:3a:5f:8d:
    52:ae:d5:3d:11:cb:31:94:a7:57:c5:b2:b8:91:d4:
    71:df:2e:af:d5:25:00:3c:8a:ee:e0:20:d7:78:35:
    24:24:a2:60:9d:e8:f0:e8:f1:0c:ef:65:6f:4f:22:
    08:3a:69:6d:f0:50:a1:8f:79:7b:2b:89:1d:d8:3e:
    8f:a7:47:8e:35:dc:36:8e:c1:57:ad:26:4c:cd:f6:
    8c:50:50:7d:ef:27:95:a5:19:09:eb:6b:24:89:25:
    f0:5d:62:4b:8c:a3:db:39:8d:e7:86:25:d5:1b:d6:
    cf:21
=========================================================================
exponent1:
    32:7f:64:c6:95:52:ab:b6:e0:7b:77:5b:e7:a8:2b:
    52:b4:03:9a:a1:d0:38:80:38:b9:65:94:18:25:ea:
    b6:a1:1b:91:e1:82:e6:a1:3b:2f:a2:4d:10:02:ad:
    9d:3c:a6:af:ea:dd:3f:4a:ad:9f:72:a4:6e:4e:9f:
    87:d3:d7:86:e0:11:a5:93:de:22:ae:7d:57:91:b6:
    25:51:3b:3c:c4:f5:92:bc:4d:0f:9f:7a:be:91:65:
    12:18:70:57:48:13:8e:53:f4:e4:51:01:f5:9b:93:
    94:d4:40:99:70:bb:63:12:63:5b:bf:7c:99:d3:52:
    62:94:13:2a:51:cc:7a:64:a4:6a:61:e7:7b:8a:26:
    8a:aa:29:c8:6f:11:72:b9:23:3b:de:2f:61:d0:31:
    77:e3:14:61:e4:b5:c8:73:d4:c6:f1:9f:4f:6c:ce:
    06:2f:e4:1d:cf:42:0e:05:f2:d6:2c:2c:cc:2a:1c:
    6e:b0:30:d9:53:51:0a:58:fb:45:a5:e1:97:ae:7f:
    2b:47:50:86:d1:e1:e4:c3:e0:e0:bf:f9:21:6f:2b:
    06:73:aa:cb:ae:c0:b3:6e:ab:24:d5:89:1b:35:e0:
    ae:93:2d:8a:49:3c:06:93:9a:1c:b6:cf:ac:18:20:
    66:37:09:6b:9a:97:20:7f:32:73:43:06:2a:32:97:
    9d
=========================================================================
exponent2:
    64:de:c3:3d:60:dc:b8:67:55:7e:56:b1:6d:60:ae:
    bf:9c:a6:1a:8d:f9:d9:a5:98:0f:3e:58:b3:24:ca:
    be:ef:8a:e0:9a:7f:5a:d0:30:34:ff:ca:f2:2a:d2:
    c7:4c:12:d8:51:d1:d4:9e:9a:33:12:ac:01:47:1b:
    21:6a:67:d4:61:b5:58:9b:a1:5d:10:98:00:44:cc:
    a5:04:b9:56:ba:89:96:e7:ed:54:03:f3:af:d3:97:
    51:ce:95:1b:0c:be:1f:9f:03:38:57:4d:bc:29:9b:
    fa:1f:d3:7f:c5:8e:49:9e:92:10:69:39:a9:f1:f4:
    00:bb:cf:8e:e2:86:c5:3b:4c:fa:d0:88:56:66:f2:
    19:04:8d:32:1c:c2:32:e5:27:bb:27:32:37:48:99:
    32:80:f3:a9:e8:de:3a:50:c2:44:da:c9:2b:8b:2e:
    b8:0f:65:1e:46:ce:ca:78:15:43:66:f3:5b:f8:6d:
    ee:12:4c:cf:d3:e9:18:d2:e4:b8:b7:06:7a:ce:29:
    4b:a6:cc:2b:2e:6d:96:c6:25:49:db:1b:ae:50:e1:
    e5:3e:1d:64:78:7a:9e:c8:1c:7c:09:64:5b:d9:e8:
    04:e6:e3:3a:9c:a1:5e:df:c7:eb:45:3a:66:37:eb:
    00:a2:95:28:95:ab:21:41:6e:be:0f:d3:6d:d2:31:
    21
=========================================================================
coefficient:
    00:e2:2f:35:6e:3f:af:78:6d:c1:52:d7:6d:5c:63:
    d0:31:1e:c4:aa:62:3a:1c:98:bf:09:95:5f:0c:84:
    78:3f:bb:cd:dd:6f:7a:53:cc:fd:f2:24:ed:19:00:
    d6:f8:02:7e:e3:68:33:37:4e:61:04:79:89:59:d8:
    56:e4:78:74:56:43:ea:f9:d6:59:92:bc:a4:01:3b:
    e4:bf:81:13:ba:31:af:fe:59:fa:cc:cb:67:e3:4f:
    88:11:a1:bd:5a:0f:88:18:44:c8:d0:01:cf:3a:7e:
    9b:36:d0:3f:1b:4c:09:ed:35:10:81:c5:41:25:af:
    43:02:ac:dc:c8:e5:a6:39:09:85:a2:75:e9:c8:29:
    b2:99:d3:bb:c3:67:23:e3:2d:41:45:eb:0e:2b:fd:
    75:3b:ce:52:85:21:db:8b:ad:5f:d2:f8:2f:31:be:
    44:1a:5f:fa:e1:45:18:c7:2e:72:e2:26:08:80:35:
    0e:51:22:03:3e:f5:6a:08:d0:88:56:9d:04:80:f4:
    f0:56:d4:2f:b5:a5:c7:cf:42:3e:17:3a:5d:a7:01:
    59:1c:cf:ed:10:c8:5e:e7:1b:40:85:81:2d:3c:ff:
    84:a0:0f:40:a2:53:ae:b5:6d:70:45:88:f1:9d:c3:
    5b:b6:e9:5c:8b:a9:2d:b7:09:18:29:d3:2d:ce:74:
    dd:7c