{"id":255267,"date":"2015-04-15T12:50:02","date_gmt":"2015-04-15T08:50:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=255267"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=255267","title":{"rendered":"RSA \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 PHP (openssl), Android\/Java, JavaScript \u0438 Go"},"content":{"rendered":"<p>     \tRSA \u044d\u0442\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u0435\u043c. \u0428\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u0435\u043c \u0432\u0435\u0441\u044c\u043c\u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0432\u0435\u0449\u044c. RSA \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u0432\u0430 \u043a\u043b\u044e\u0447\u0430: \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439. \u0420\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u0433\u0434\u0435-\u0442\u043e \u0438 \u0438\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c, \u0430 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043c\u043e\u0436\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u043b\u0430\u0434\u0430\u0442\u0435\u043b\u044c \u0437\u0430\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430.<\/p>\n<p>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0435\u0431 \u043c\u0430\u0433\u0430\u0437\u0438\u043d \u043d\u0430 \u041f\u0425\u041f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0437\u0430\u043a\u0430\u0437\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043a\u0440\u0435\u0434\u0438\u0442\u043d\u044b\u0445 \u043a\u0430\u0440\u0442. \u041c\u0430\u0433\u0430\u0437\u0438\u043d \u043d\u0430 \u041f\u0425\u041f \u0431\u0443\u0434\u0435\u0442 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u0440\u0435\u0434\u0438\u0442\u043d\u044b\u0445 \u043a\u0430\u0440\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u0435\u043c. \u0421\u0430\u043c \u043f\u0445\u043f-\u043c\u0430\u0433\u0430\u0437\u0438\u043d \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0443\u0436\u0435 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442. \u0425\u043e\u0440\u043e\u0448\u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0445\u0430\u043a\u0435\u0440 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e \u0442\u0430\u043a \u0432\u0437\u043b\u043e\u043c\u0430\u0435\u0442 \u0432\u0435\u0431 \u043c\u0430\u0433\u0430\u0437\u0438\u043d (\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u041f\u0425\u041f), \u0430 \u043a\u0430\u0440\u0442\u044b \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u044b. <br \/>  <a name=\"habracut\"><\/a><br \/>  \u041d\u043e \u043a\u0430\u043a \u0436\u0435 \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 \u0441\u0430\u0439\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u0430\u0440\u0442\u0430\u043c? \u0415\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u0448\u0438\u0444\u0440\u043e\u0442\u0435\u043a\u0441\u0442, \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u0438 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c. \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c, \u0447\u0442\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0432 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435, \u0438 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0442\u044f\u043d\u0443\u0442\u044c \u0448\u0438\u0444\u0440\u043e\u0442\u0435\u043a\u0441\u0442 \u0441 \u0430\u0434\u043c\u0438\u043d\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 QR \u043a\u043e\u0434. \u041d\u043e \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f, \u0438 \u043c\u043e\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043a\u0430\u043a \u0440\u0430\u0437 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0430 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u044f\u0437\u044b\u043a\u0435.<\/p>\n<p>  \u0412 \u0447\u0435\u043c \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u0442\u043b\u0438\u0447\u0438\u044f? <br \/>   \u2014 \u043a\u0430\u043a \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043a\u043b\u044e\u0447\u0438;<br \/>   \u2014 \u043a\u0430\u043a \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0448\u0438\u0444\u0440\u043e\u0442\u0435\u043a\u0441\u0442: \u0431\u0438\u043d\u0430\u0440\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0430 \u0438\u043b\u0438 \u0432 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435 base64;<br \/>   \u2014 \u043f\u0430\u0434\u0434\u0438\u043d\u0433.<\/p>\n<p>  \u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u044b \u043a\u043b\u044e\u0447\u0438. \u042f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0438\u0445 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e openssl<\/p>\n<pre><code class=\"bash\">openssl genrsa -out private.pem 512 openssl rsa -in private.pem -out public.pem -outform PEM -pubout <\/code><\/pre>\n<p>  \u0414\u043b\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u043c\u0435\u0441\u0442\u0430 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u044f \u0432\u044b\u0431\u0440\u0430\u043b 512 \u0431\u0438\u0442, \u0446\u0435\u043b\u0435\u0441\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c 1024 \u0438\u043b\u0438 2048 \u0431\u0438\u0442. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, SSL gitgub.com \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 2048. <\/p>\n<p>  \u0422\u0430\u043a \u0436\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043b\u044e\u0447\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c, \u043d\u043e \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c OPENSSL_PKCS1_PADDING (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 \u041f\u0425\u041f), \u0442\u043e \u0438\u0437 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043a\u043b\u044e\u0447\u0430 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0432\u044b\u0447\u0435\u0441\u0442\u044c 11 \u0431\u0430\u0439\u0442 \u0438 \u043f\u0440\u0438 \u043a\u043b\u044e\u0447\u0435 512 \u0431\u0438\u0442 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c 53 \u0431\u0430\u0439\u0442\u0430. \u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u0434\u0434\u0438\u043d\u0433 \u0432\u043e\u043e\u0431\u0449\u0435 \u043e\u043f\u0430\u0441\u043d\u043e, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0437\u043d\u0430\u0435\u0442\u0435 \u0437\u0430\u0447\u0435\u043c \u043e\u043d \u043d\u0443\u0436\u0435\u043d. <\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c private.pem \u0438 public.pem. \u042d\u0442\u0438 \u043a\u043b\u044e\u0447\u0438 \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u0438 \u0438\u0445 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445. \u042f \u0445\u043e\u0447\u0443, \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u0436\u0434\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0430 \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430, \u0442\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u0435\u0439.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">private.pem<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">-----BEGIN RSA PRIVATE KEY----- MIIBPQIBAAJBALqbHeRLCyOdykC5SDLqI49ArYGYG1mqaH9\/GnWjGavZM02fos4l c2w6tCchcUBNtJvGqKwhC5JEnx3RYoSX2ucCAwEAAQJBAKn6O+tFFDt4MtBsNcDz GDsYDjQbCubNW+yvKbn4PJ0UZoEebwmvH1ouKaUuacJcsiQkKzTHleu4krYGUGO1 mEECIQD0dUhj71vb1rN1pmTOhQOGB9GN1mygcxaIFOWW8znLRwIhAMNqlfLijUs6 rY+h1pJa\/3Fh1HTSOCCCCWA0NRFnMANhAiEAwddKGqxPO6goz26s2rHQlHQYr47K vgPkZu2jDCo7trsCIQC\/PSfRsnSkEqCX18GtKPCjfSH10WSsK5YRWAY3KcyLAQIh AL70wdUu5jMm2ex5cZGkZLRB50yE6rBiHCd5W1WdTFoe -----END RSA PRIVATE KEY----- <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">public.pem<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">-----BEGIN PUBLIC KEY----- MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALqbHeRLCyOdykC5SDLqI49ArYGYG1mq aH9\/GnWjGavZM02fos4lc2w6tCchcUBNtJvGqKwhC5JEnx3RYoSX2ucCAwEAAQ== -----END PUBLIC KEY----- <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<h4>\u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u041f\u0425\u041f<\/h4>\n<p>  <b>encode.php<\/b>  <\/p>\n<pre><code class=\"php\">&lt;?php $pub = &lt;&lt;&lt;SOMEDATA777 -----BEGIN PUBLIC KEY----- MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALqbHeRLCyOdykC5SDLqI49ArYGYG1mq aH9\/GnWjGavZM02fos4lc2w6tCchcUBNtJvGqKwhC5JEnx3RYoSX2ucCAwEAAQ== -----END PUBLIC KEY----- SOMEDATA777; $data = &quot;PHP is my secret love.&quot;; $pk  = openssl_get_publickey($pub); openssl_public_encrypt($data, $encrypted, $pk); echo chunk_split(base64_encode($encrypted)); ?&gt; <\/code><\/pre>\n<p>  <a href=\"http:\/\/goo.gl\/Xb7ayw\">goo.gl\/Xb7ayw<\/a><\/p>\n<p>  \u043f\u043e\u043b\u0443\u0447\u0438\u043c, \u0447\u0442\u043e-\u0442\u043e \u0442\u0438\u043f\u0430, (\u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0448\u0438\u0444\u0440\u043e\u0442\u0435\u043a\u0441\u0442 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442)   <\/p>\n<pre><code class=\"bash\">JutBa0GLHzGrlygxwWr66cizw4W4za+DbzZweNM0iloCD7xEP9LclL013lcksJL5XhjW44U+oxpq cX1ZSLhWuA== <\/code><\/pre>\n<p>  <b>decode.php<\/b>  <\/p>\n<pre><code class=\"php\">&lt;?php $key = &lt;&lt;&lt;SOMEDATA777 -----BEGIN RSA PRIVATE KEY----- MIIBPQIBAAJBALqbHeRLCyOdykC5SDLqI49ArYGYG1mqaH9\/GnWjGavZM02fos4l c2w6tCchcUBNtJvGqKwhC5JEnx3RYoSX2ucCAwEAAQJBAKn6O+tFFDt4MtBsNcDz GDsYDjQbCubNW+yvKbn4PJ0UZoEebwmvH1ouKaUuacJcsiQkKzTHleu4krYGUGO1 mEECIQD0dUhj71vb1rN1pmTOhQOGB9GN1mygcxaIFOWW8znLRwIhAMNqlfLijUs6 rY+h1pJa\/3Fh1HTSOCCCCWA0NRFnMANhAiEAwddKGqxPO6goz26s2rHQlHQYr47K vgPkZu2jDCo7trsCIQC\/PSfRsnSkEqCX18GtKPCjfSH10WSsK5YRWAY3KcyLAQIh AL70wdUu5jMm2ex5cZGkZLRB50yE6rBiHCd5W1WdTFoe -----END RSA PRIVATE KEY----- SOMEDATA777; $data = &quot;JutBa0GLHzGrlygxwWr66cizw4W4za+DbzZweNM0iloCD7xEP9LclL013lcksJL5XhjW44U+oxpq cX1ZSLhWuA==&quot;; $pk  = openssl_get_privatekey($key); openssl_private_decrypt(base64_decode($data), $out, $pk); echo $out; ?&gt; <\/code><\/pre>\n<p>  <a href=\"http:\/\/goo.gl\/0CWTQ9\">goo.gl\/0CWTQ9<\/a><\/p>\n<h4>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430 Go<\/h4>\n<p>  <\/p>\n<pre><code class=\"go\">package main  import ( \t&quot;crypto\/rand&quot; \t&quot;crypto\/rsa&quot; \t&quot;crypto\/x509&quot; \t&quot;encoding\/base64&quot; \t&quot;encoding\/pem&quot; \t&quot;errors&quot; \t&quot;fmt&quot; \t&quot;strings&quot; )  func main() { \tb64 := `JutBa0GLHzGrlygxwWr66cizw4W4za+DbzZweNM0iloCD7xEP9LclL013lcksJL5XhjW44U+oxpq cX1ZSLhWuA== ` \tb1, err := Base64Dec(b64) \tif err != nil { \t\tpanic(err) \t} \tb2, err := RsaDecrypt(b1, privateKey) \tfmt.Println(string(b2), err)  \tb1, err = RsaEncrypt([]byte(&quot;Go the best language&quot;), publicKey) \tif err != nil { \t\tpanic(err) \t} \ts1 := Base64Enc(b1) \tfmt.Println(s1) \tb1, err = Base64Dec(s1) \tb2, err = RsaDecrypt(b1, privateKey) \tfmt.Println(string(b2), err)  }  func Base64Enc(b1 []byte) string { \ts1 := base64.StdEncoding.EncodeToString(b1) \ts2 := &quot;&quot; \tvar LEN int = 76 \tfor len(s1) &gt; 76 { \t\ts2 = s2 + s1[:LEN] + &quot;\\n&quot; \t\ts1 = s1[LEN:] \t} \ts2 = s2 + s1 \treturn s2 }  func Base64Dec(s1 string) ([]byte, error) { \ts1 = strings.Replace(s1, &quot;\\n&quot;, &quot;&quot;, -1) \ts1 = strings.Replace(s1, &quot;\\r&quot;, &quot;&quot;, -1) \ts1 = strings.Replace(s1, &quot; &quot;, &quot;&quot;, -1) \treturn base64.StdEncoding.DecodeString(s1) }  func RsaDecrypt(ciphertext []byte, key []byte) ([]byte, error) { \tblock, _ := pem.Decode(key) \tif block == nil { \t\treturn nil, errors.New(&quot;private key error!&quot;) \t} \tpriv, err := x509.ParsePKCS1PrivateKey(block.Bytes) \tif err != nil { \t\treturn nil, err \t} \treturn rsa.DecryptPKCS1v15(rand.Reader, priv, ciphertext) }  func RsaEncrypt(origData []byte, key []byte) ([]byte, error) { \tblock, _ := pem.Decode(key) \tif block == nil { \t\treturn nil, errors.New(&quot;public key error&quot;) \t} \tpubInterface, err := x509.ParsePKIXPublicKey(block.Bytes) \tif err != nil { \t\treturn nil, err \t} \tpub := pubInterface.(*rsa.PublicKey) \treturn rsa.EncryptPKCS1v15(rand.Reader, pub, origData) }  var publicKey = []byte(` -----BEGIN PUBLIC KEY----- MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALqbHeRLCyOdykC5SDLqI49ArYGYG1mq aH9\/GnWjGavZM02fos4lc2w6tCchcUBNtJvGqKwhC5JEnx3RYoSX2ucCAwEAAQ== -----END PUBLIC KEY----- `)  var privateKey = []byte(` -----BEGIN RSA PRIVATE KEY----- MIIBPQIBAAJBALqbHeRLCyOdykC5SDLqI49ArYGYG1mqaH9\/GnWjGavZM02fos4l c2w6tCchcUBNtJvGqKwhC5JEnx3RYoSX2ucCAwEAAQJBAKn6O+tFFDt4MtBsNcDz GDsYDjQbCubNW+yvKbn4PJ0UZoEebwmvH1ouKaUuacJcsiQkKzTHleu4krYGUGO1 mEECIQD0dUhj71vb1rN1pmTOhQOGB9GN1mygcxaIFOWW8znLRwIhAMNqlfLijUs6 rY+h1pJa\/3Fh1HTSOCCCCWA0NRFnMANhAiEAwddKGqxPO6goz26s2rHQlHQYr47K vgPkZu2jDCo7trsCIQC\/PSfRsnSkEqCX18GtKPCjfSH10WSsK5YRWAY3KcyLAQIh AL70wdUu5jMm2ex5cZGkZLRB50yE6rBiHCd5W1WdTFoe -----END RSA PRIVATE KEY----- `)  <\/code><\/pre>\n<p>  <a href=\"http:\/\/play.golang.org\/p\/nsyAw5kYDt\">play.golang.org\/p\/nsyAw5kYDt<\/a><\/p>\n<p>  Go Playground \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u0430\u044e\u0442 \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442   <\/p>\n<pre><code class=\"bash\">aOleRSXhBT1XR7Al9cxdmM\/8KnM2CvQdnNqnvwtq1ivFJ1aITxJUCuTw8ZRB8mY+elhoiUmC4UjM mwyTKmjqQw== <\/code><\/pre>\n<p>  <\/p>\n<h4>JavaScript \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/h4>\n<p>  \u0428\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u044f \u0431\u0443\u0434\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"http:\/\/travistidwell.com\/jsencrypt\/\">jsEncrypt<\/a><\/p>\n<pre><code class=\"javascript\">$(function () {   $('#but').click(function(){      var pub = $('#pub').val();      var crypt = new JSEncrypt();      crypt.setPublicKey(pub);      var data = $('#data').val();      $('#out').val(crypt.encrypt(data));   }); });  <\/code><\/pre>\n<p>  <a href=\"http:\/\/cossackpyra.github.io\/april14\/html\/encrypt.html\">cossackpyra.github.io\/april14\/html\/encrypt.html<\/a><\/p>\n<p>  \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b  <\/p>\n<pre><code class=\"bash\">C2uWXwp6OsxLKnr3cXpJIf\/RcPzgjlxNXj8IX2R47binEo2dLFhJISDnOioQaM8kAl\/lqSSOCLdrYP12Tc\/YXQ== <\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"javascript\">$(function () {   $('#but').click(function(){      var key = $('#key').val();      var crypt = new JSEncrypt();      crypt.setPrivateKey(key);      var data = $('#data').val();      $('#out').val(crypt.decrypt(data));   }); }); <\/code><\/pre>\n<p>  <a href=\"http:\/\/cossackpyra.github.io\/april14\/html\/decrypt.html\">cossackpyra.github.io\/april14\/html\/decrypt.html<\/a><\/p>\n<h4>Android \u043d\u0435 Java<\/h4>\n<p>  Java \u044d\u0442\u043e \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0432\u0441\u0435\u0433\u043e, \u0438 \u043d\u0438 \u0444\u0438\u0433\u0430 \u043d\u0435\u0442.<\/p>\n<p>  \u0412 \u0410\u043d\u0434\u0440\u043e\u0439\u0434\u0435 \u0435\u0441\u0442\u044c android.util.Base64, \u0430 Java 8 java.util.Base64, \u0430 \u0435\u0449\u0435 \u0435\u0441\u0442\u044c org.apache.commons.codec.binary.Base64.<\/p>\n<p>  Java \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0432 PEM \u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u043a\u0430\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u0446\u0435\u043b\u0438 \u0441\u0442\u0430\u0432\u0438\u043b\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u0435\u0440\u0435\u0434 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044f\u043c\u0438 java.security \u0438 javax.crypto \u044d\u0442\u043e \u043c\u0440\u0430\u043a, \u043d\u043e \u044f\u0432\u043d\u043e \u043d\u0435 \u043d\u0435 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u043c\u0435\u0441\u0442\u043e \u043d\u0430 \u0434\u0438\u0441\u043a\u0435.<\/p>\n<p>  \u0412 Bouncy Castle \u0435\u0441\u0442\u044c <a href=\"http:\/\/www.bouncycastle.org\/docs\/pkixdocs1.5on\/org\/bouncycastle\/openssl\/PEMParser.html\">PEMParser<\/a>. \u041d\u043e Bouncy Castle \u0432 \u043e\u043d\u043b\u0430\u0439\u043d \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043d\u0435 \u043f\u043e\u0434\u0446\u0435\u043f\u0438\u0448\u044c, \u0430 \u0432 \u0430\u043d\u0434\u0440\u043e\u0438\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043a\u0430\u043a\u043e\u0439 Bouncy Castle, \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0441\u0442\u044c <a href=\"https:\/\/rtyley.github.io\/spongycastle\/\">Spongy Castle<\/a>, \u043d\u043e \u044d\u0442\u043e \u0443\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u0440\u0443\u0433\u0430\u044f \u0433\u0440\u0430\u0444\u0430 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438 \u0432 \u0444\u043e\u0440\u043c\u0435 \u00abSupplement No. 5 to Part 742\u2014Encryption Registration\u00bb \u043d\u0430 \u043f\u0443\u043d\u043a\u0442\u044b 6 \u0438 7 \u0443\u0436\u0435 \u043d\u0435 \u043e\u0442\u0432\u0435\u0442\u0438\u0448\u044c \u00ab\u043d\u0435\u0442, \u043d\u0435\u0442\u00bb.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">SNAP-R<\/b><\/p>\n<div class=\"spoiler_text\">(6) Do the products incorporate encryption components produced or furnished by non-U.S. sources or vendors? (If unsure, please explain.)<\/p>\n<p>  No.<\/p>\n<p>  (7) With respect to your company&#8217;s encryption products, are any of them manufactured outside the United States? If yes, provide manufacturing locations. (Insert \u201cnot applicable\u201d, if you are not the principal producer of encryption products.)<\/p>\n<p>  No.<\/p><\/div>\n<\/div>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0437 private.pem \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043d\u0443\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u044c, \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0443\u044e \u0438 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u0443\u044e \u044d\u043a\u0441\u043f\u043e\u043d\u0435\u043d\u0442\u044b. (\u042d\u0442\u043e \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e, \u044f \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043a\u043b\u044e\u0447\u0438 \u0441\u043e\u0437\u0434\u0430\u043b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e openssl) <\/p>\n<pre><code class=\"bash\">openssl rsa -in private.pem -text -noout Private-Key: (512 bit) modulus:     00:ba:9b:1d:e4:4b:0b:23:9d:ca:40:b9:48:32:ea:     23:8f:40:ad:81:98:1b:59:aa:68:7f:7f:1a:75:a3:     19:ab:d9:33:4d:9f:a2:ce:25:73:6c:3a:b4:27:21:     71:40:4d:b4:9b:c6:a8:ac:21:0b:92:44:9f:1d:d1:     62:84:97:da:e7 publicExponent: 65537 (0x10001) privateExponent:     00:a9:fa:3b:eb:45:14:3b:78:32:d0:6c:35:c0:f3:     18:3b:18:0e:34:1b:0a:e6:cd:5b:ec:af:29:b9:f8:     3c:9d:14:66:81:1e:6f:09:af:1f:5a:2e:29:a5:2e:     69:c2:5c:b2:24:24:2b:34:c7:95:eb:b8:92:b6:06:     50:63:b5:98:41 prime1:     00:f4:75:48:63:ef:5b:db:d6:b3:75:a6:64:ce:85:     03:86:07:d1:8d:d6:6c:a0:73:16:88:14:e5:96:f3:     39:cb:47 prime2:     00:c3:6a:95:f2:e2:8d:4b:3a:ad:8f:a1:d6:92:5a:     ff:71:61:d4:74:d2:38:20:82:09:60:34:35:11:67:     30:03:61 exponent1:     00:c1:d7:4a:1a:ac:4f:3b:a8:28:cf:6e:ac:da:b1:     d0:94:74:18:af:8e:ca:be:03:e4:66:ed:a3:0c:2a:     3b:b6:bb exponent2:     00:bf:3d:27:d1:b2:74:a4:12:a0:97:d7:c1:ad:28:     f0:a3:7d:21:f5:d1:64:ac:2b:96:11:58:06:37:29:     cc:8b:01 coefficient:     00:be:f4:c1:d5:2e:e6:33:26:d9:ec:79:71:91:a4:     64:b4:41:e7:4c:84:ea:b0:62:1c:27:79:5b:55:9d:     4c:5a:1e  <\/code><\/pre>\n<p>  \u0412 Java \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a<\/p>\n<pre><code class=\"java\">\/\/ Private key \t\tBigInteger modulus = new BigInteger( \t\t\t\t&quot;BA9B1DE44B0B239DCA40B94832EA238F40AD81981B59AA687F7F1A75A319ABD9334D9FA2CE25736C3AB4272171404DB49BC6A8AC210B92449F1DD1628497DAE7&quot;, \t\t\t\t16); \t\tBigInteger exp = new BigInteger( \t\t\t\t&quot;00a9fa3beb45143b7832d06c35c0f3183b180e341b0ae6cd5becaf29b9f83c9d1466811e6f09af1f5a2e29a52e69c25cb224242b34c795ebb892b6065063b59841&quot;, \t\t\t\t16);  \/\/Public Key  \t\tBigInteger modulus = new BigInteger( \t\t\t\t&quot;BA9B1DE44B0B239DCA40B94832EA238F40AD81981B59AA687F7F1A75A319ABD9334D9FA2CE25736C3AB4272171404DB49BC6A8AC210B92449F1DD1628497DAE7&quot;, \t\t\t\t16); \t\tBigInteger pubExp = new BigInteger(&quot;010001&quot;, 16);   <\/code><\/pre>\n<p>  \u0412\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0430 Java 8<\/p>\n<pre><code class=\"java\">import java.io.UnsupportedEncodingException; import java.math.BigInteger; import java.security.KeyFactory; import java.security.PrivateKey; import java.security.PublicKey; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.RSAPrivateKeySpec; import java.security.spec.RSAPublicKeySpec; import java.security.spec.X509EncodedKeySpec; import javax.crypto.Cipher;  import java.util.Base64;  \/\/import javax.xml.bind.DatatypeConverter;  public class HelloWorld {  \tpublic static void main(String[] args) throws Exception { \t\ttry { \t\t\tbyte[] b1 = decrypt(&quot;JutBa0GLHzGrlygxwWr66cizw4W4za+DbzZweNM0iloCD7xEP9LclL013lcksJL5XhjW44\\nU+oxpqcX1ZSLhWuA==&quot;); \t\t\tString s1 = new String(b1, &quot;UTF-8&quot;); \t\t\tSystem.out.println(s1); \t\t\tbyte[] b2 = encrypt(&quot;Java kills&quot;.getBytes(&quot;UTF-8&quot;)); \t\t\tString s2 = Base64.getEncoder().encodeToString(b2); \t\t\tSystem.out.println(s2); \t\t\tbyte[] b3 = decrypt(s2); \t\t\tString s3 = new String(b3, &quot;UTF-8&quot;); \t\t\tSystem.out.println(s3);  \t\t} catch (UnsupportedEncodingException e) { \t\t\te.printStackTrace(); \t\t} catch (Exception e) { \t\t\te.printStackTrace(); \t\t} \t}  \tpublic static byte[] decrypt(String key) throws Exception {  \t\tBigInteger modulus = new BigInteger( \t\t\t\t&quot;BA9B1DE44B0B239DCA40B94832EA238F40AD81981B59AA687F7F1A75A319ABD9334D9FA2CE25736C3AB4272171404DB49BC6A8AC210B92449F1DD1628497DAE7&quot;, \t\t\t\t16); \t\tBigInteger exp = new BigInteger( \t\t\t\t&quot;00a9fa3beb45143b7832d06c35c0f3183b180e341b0ae6cd5becaf29b9f83c9d1466811e6f09af1f5a2e29a52e69c25cb224242b34c795ebb892b6065063b59841&quot;, \t\t\t\t16);  \t\tRSAPrivateKeySpec keySpec = new RSAPrivateKeySpec(modulus, exp); \t\tKeyFactory kf = KeyFactory.getInstance(&quot;RSA&quot;); \t\tPrivateKey privKey = kf.generatePrivate(keySpec);  \t\tCipher cipher = Cipher.getInstance(&quot;RSA\/ECB\/PKCS1Padding&quot;); \t\tcipher.init(Cipher.DECRYPT_MODE, privKey);  \t\tbyte[] decodedStr = Base64.getDecoder().decode( \t\t\t\tkey.replace(&quot;\\n&quot;, &quot;&quot;).replace(&quot;\\r&quot;, &quot;&quot;).replace(&quot; &quot;, &quot;&quot;)); \t\tbyte[] plainText = cipher.doFinal(decodedStr);  \t\treturn plainText; \t}  \tprivate static byte[] encrypt(byte[] b1) throws Exception { \t\tBigInteger modulus = new BigInteger( \t\t\t\t&quot;BA9B1DE44B0B239DCA40B94832EA238F40AD81981B59AA687F7F1A75A319ABD9334D9FA2CE25736C3AB4272171404DB49BC6A8AC210B92449F1DD1628497DAE7&quot;, \t\t\t\t16); \t\tBigInteger pubExp = new BigInteger(&quot;010001&quot;, 16);  \t\tRSAPublicKeySpec keySpec = new RSAPublicKeySpec(modulus, pubExp); \t\tKeyFactory kf = KeyFactory.getInstance(&quot;RSA&quot;); \t\tPublicKey publicKey = kf.generatePublic(keySpec);  \t\tCipher cipher = Cipher.getInstance(&quot;RSA\/ECB\/PKCS1Padding&quot;); \t\tcipher.init(Cipher.ENCRYPT_MODE, publicKey);  \t\t\/\/ byte[] decodedStr = Base64.decode(key, Base64.DEFAULT); \t\tbyte[] plainText = cipher.doFinal(b1);  \t\treturn plainText; \t} }  <\/code><\/pre>\n<p>  <a href=\"http:\/\/goo.gl\/t27IWw\">goo.gl\/t27IWw<\/a><br \/>  (\u041d\u0430\u0434\u043e \u043d\u0430\u0436\u0430\u0442\u044c Compile, Execute)  <\/p>\n<pre><code class=\"bash\">ik1Dvev7AffP+mOgxkbnYmpZrN9nGCKEzwCA4qsADcSKZFDYC\/32B4uzUNSH8D+yCjBbrE5HUDL6vs6W5idG6Q== <\/code><\/pre>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Android \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"java\">  import java.io.UnsupportedEncodingException; import java.math.BigInteger; import java.security.KeyFactory; import java.security.PrivateKey; import java.security.PublicKey; import java.security.spec.RSAPrivateKeySpec; import java.security.spec.RSAPublicKeySpec;  import javax.crypto.Cipher;  import android.util.Base64; import android.util.Log;  public class TestX {  \tpublic static byte[] decrypt(String key) throws Exception {  \t\tBigInteger modulus = new BigInteger( \t\t\t\t&quot;BA9B1DE44B0B239DCA40B94832EA238F40AD81981B59AA687F7F1A75A319ABD9334D9FA2CE25736C3AB4272171404DB49BC6A8AC210B92449F1DD1628497DAE7&quot;, \t\t\t\t16); \t\tBigInteger exp = new BigInteger( \t\t\t\t&quot;00a9fa3beb45143b7832d06c35c0f3183b180e341b0ae6cd5becaf29b9f83c9d1466811e6f09af1f5a2e29a52e69c25cb224242b34c795ebb892b6065063b59841&quot;, \t\t\t\t16);  \t\tRSAPrivateKeySpec keySpec = new RSAPrivateKeySpec(modulus, exp); \t\tKeyFactory kf = KeyFactory.getInstance(&quot;RSA&quot;); \t\tPrivateKey privKey = kf.generatePrivate(keySpec);  \t\tCipher cipher = Cipher.getInstance(&quot;RSA\/ECB\/PKCS1Padding&quot;); \t\tcipher.init(Cipher.DECRYPT_MODE, privKey);  \t\tbyte[] decodedStr = Base64.decode(key, Base64.DEFAULT); \t\tbyte[] plainText = cipher.doFinal(decodedStr);  \t\treturn plainText; \t}  \tpublic static void test() { \t\ttry { \t\t\tbyte[] b1 = decrypt(&quot;JutBa0GLHzGrlygxwWr66cizw4W4za+DbzZweNM0iloCD7xEP9LclL013lcksJL5XhjW44U+oxpq\\ncX1ZSLhWuA==&quot;); \t\t\tString s1 = new String(b1, &quot;UTF-8&quot;); \t\t\tLog.i(&quot;TEST&quot;, s1); \t\t\tbyte[] b2 = encrypt(&quot;Java kills&quot;.getBytes(&quot;UTF-8&quot;)); \t\t\tString s2 = Base64.encodeToString(b2, Base64.CRLF); \t\t\tLog.i(&quot;TEST&quot;, s2); \t\t\tbyte[] b3 = decrypt(s2); \t\t\tString s3 = new String(b3, &quot;UTF-8&quot;); \t\t\tLog.i(&quot;TEST&quot;, s3);  \t\t} catch (UnsupportedEncodingException e) { \t\t\te.printStackTrace(); \t\t} catch (Exception e) { \t\t\te.printStackTrace(); \t\t} \t}  \tprivate static byte[] encrypt(byte[] b1) throws Exception { \t\tBigInteger modulus = new BigInteger( \t\t\t\t&quot;BA9B1DE44B0B239DCA40B94832EA238F40AD81981B59AA687F7F1A75A319ABD9334D9FA2CE25736C3AB4272171404DB49BC6A8AC210B92449F1DD1628497DAE7&quot;, \t\t\t\t16); \t\tBigInteger pubExp = new BigInteger(&quot;010001&quot;, 16);  \t\tRSAPublicKeySpec keySpec = new RSAPublicKeySpec(modulus, pubExp); \t\tKeyFactory kf = KeyFactory.getInstance(&quot;RSA&quot;); \t\tPublicKey publicKey = kf.generatePublic(keySpec);  \t\tCipher cipher = Cipher.getInstance(&quot;RSA\/ECB\/PKCS1Padding&quot;); \t\tcipher.init(Cipher.ENCRYPT_MODE, publicKey);  \t\tbyte[] plainText = cipher.doFinal(b1);  \t\treturn plainText; \t} }  <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041a\u041e: \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0442\u0435\u043a\u0441\u0442, \u0430 AES \u043a\u043b\u044e\u0447.<\/p>\n<p>  \u0412\u0441\u0435\u043c \u0432\u0435\u0441\u043d\u044b \u0438 \u0443\u0434\u0430\u0447\u0438.   \t\t\t\t<\/p>\n<div class=\"polling\">\n<form action=\"\/json\/polling\/\" class=\"poll\" method=\"post\">\n<div class=\"poll_title\">\u041d\u0443 \u043a\u0430\u043a?<\/div>\n<p>  \t\t<input type=\"hidden\" name=\"post_id\" value=\"255799\"\/> \t\t<input type=\"hidden\" name=\"polling_question_id\" value=\"13441\"\/>  \t\t<\/p>\n<table class=\"answer\">\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"radio\" id=\"vv66387\" \t\t\t\t\t\tclass=\"radio js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"66387\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv66387\">\u044f \u0443\u0441\u0442\u0430\u043b \u044d\u0442\u043e \u0447\u0438\u0442\u0430\u0442\u044c<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"radio\" id=\"vv66389\" \t\t\t\t\t\tclass=\"radio js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"66389\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv66389\">\u044f \u0443\u0441\u0442\u0430\u043b \u044d\u0442\u043e \u043f\u0438\u0441\u0430\u0442\u044c<\/label> \t\t\t\t<\/td>\n<\/tr>\n<\/table>\n<p class=\"total\">\u041d\u0438\u043a\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b. \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043d\u0435\u0442.<\/p>\n<\/p><\/form>\n<p class=\"for_users_only_msg\">\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a href=\"https:\/\/habrahabr.ru\/auth\/login\/\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/p>\n<\/p><\/div>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/255799\/\"> http:\/\/habrahabr.ru\/post\/255799\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>     \tRSA \u044d\u0442\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u0435\u043c. \u0428\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u0435\u043c \u0432\u0435\u0441\u044c\u043c\u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0432\u0435\u0449\u044c. RSA \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u0432\u0430 \u043a\u043b\u044e\u0447\u0430: \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0439. \u0420\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043a\u043b\u044e\u0447 \u0433\u0434\u0435-\u0442\u043e \u0438 \u0438\u043c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c, \u0430 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043c\u043e\u0436\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u043b\u0430\u0434\u0430\u0442\u0435\u043b\u044c \u0437\u0430\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430.<\/p>\n<p>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0435\u0431 \u043c\u0430\u0433\u0430\u0437\u0438\u043d \u043d\u0430 \u041f\u0425\u041f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0437\u0430\u043a\u0430\u0437\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043a\u0440\u0435\u0434\u0438\u0442\u043d\u044b\u0445 \u043a\u0430\u0440\u0442. \u041c\u0430\u0433\u0430\u0437\u0438\u043d \u043d\u0430 \u041f\u0425\u041f \u0431\u0443\u0434\u0435\u0442 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u0440\u0435\u0434\u0438\u0442\u043d\u044b\u0445 \u043a\u0430\u0440\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u044e\u0447\u0435\u043c. \u0421\u0430\u043c \u043f\u0445\u043f-\u043c\u0430\u0433\u0430\u0437\u0438\u043d \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0443\u0436\u0435 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442. \u0425\u043e\u0440\u043e\u0448\u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0445\u0430\u043a\u0435\u0440 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e \u0442\u0430\u043a \u0432\u0437\u043b\u043e\u043c\u0430\u0435\u0442 \u0432\u0435\u0431 \u043c\u0430\u0433\u0430\u0437\u0438\u043d (\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u041f\u0425\u041f), \u0430 \u043a\u0430\u0440\u0442\u044b \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u044b.   <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-255267","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/255267","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=255267"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/255267\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=255267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=255267"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=255267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}