{"id":563,"date":"2011-03-05T12:30:20","date_gmt":"2011-03-05T10:30:20","guid":{"rendered":"https:\/\/bob-team.de\/wordpress\/?p=563"},"modified":"2011-03-23T10:17:01","modified_gmt":"2011-03-23T08:17:01","slug":"symetrische-verschlusselung","status":"publish","type":"post","link":"https:\/\/bob-team.de\/wordpress\/2011\/03\/05\/symetrische-verschlusselung\/","title":{"rendered":"Symetrische Verschl\u00fcsselung"},"content":{"rendered":"<p>Bei <a href=\"http:\/\/de.wikipedia.org\/wiki\/Symmetrisches_Kryptosystem\">Symmetrisches Kryptosystemen<\/a> nutzen Sender und Empf\u00e4nger den selben Schl\u00fcssel um ihre Nachricht vor den Blicken Dritter zu sch\u00fctzen. Folgendes Beispiel zeigt dieses Verfahren mit ein paar Zeilen in Java.<!--more--><\/p>\n<p>[code lang=&#8220;java&#8220;]import java.security.spec.AlgorithmParameterSpec;  <\/p>\n<p>import javax.crypto.Cipher;<br \/>\nimport javax.crypto.KeyGenerator;<br \/>\nimport javax.crypto.SecretKey;<br \/>\nimport javax.crypto.spec.IvParameterSpec;  <\/p>\n<p>public class SimpleCipher {<br \/>\n   public static void main(String[] args) {<br \/>\n      String data = &#8222;This have I thought good to deliver thee&#8220;;<br \/>\n      \/\/ &#8212;&#8212;&#8212;&#8212;&#8212;Encryption &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n      byte[] encrypted = null;<br \/>\n      byte[] iv = null;<br \/>\n      SecretKey key = null;<br \/>\n      try {<br \/>\n         KeyGenerator keygen = KeyGenerator.getInstance(&#8222;DES&#8220;);<br \/>\n         key = keygen.generateKey(); \/\/ the secret key<br \/>\n         \/*<br \/>\n          * get cipher engine instance. DES algorithm is used and<br \/>\n          * it requires the input data to be 8-byte sized blocks.<br \/>\n          * To encrypt a plain text message that is not multiples<br \/>\n          * of 8-byte blocks, the text message must be padded<br \/>\n          * with additional bytes to make the text message to<br \/>\n          * be multiples of 8-byte blocks.PKCS5Padding has used<br \/>\n          * for that purpose. note that CBC is a block cipher<br \/>\n          * mode therefore we need an initialization vector to<br \/>\n          * chain blocks.<br \/>\n          *\/<br \/>\n         Cipher cipher = Cipher.getInstance(&#8222;DES\/CBC\/PKCS5Padding&#8220;);<br \/>\n         cipher.init(Cipher.ENCRYPT_MODE, key);<br \/>\n         encrypted = cipher.doFinal(data.getBytes());<br \/>\n         \/*<br \/>\n          * save the initialization vector, remember that<br \/>\n          * we need this only when we are using cipher<br \/>\n          * block chaining mode for encryption<br \/>\n          *\/<br \/>\n         iv = cipher.getIV();<br \/>\n      } catch (Exception e) {<br \/>\n         e.printStackTrace();<br \/>\n      }<br \/>\n      \/\/ &#8212;&#8212;&#8212;&#8212;&#8212;Decryption &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n      try {<br \/>\n         Cipher cipher = Cipher.getInstance(&#8222;DES\/CBC\/PKCS5Padding&#8220;);<br \/>\n         AlgorithmParameterSpec param = new IvParameterSpec(iv);\/*<br \/>\n                   * set the<br \/>\n                   * vector<br \/>\n                   * value<br \/>\n                   *\/<br \/>\n         cipher.init(Cipher.DECRYPT_MODE, key, param);<br \/>\n         byte[] decrypted = cipher.doFinal(encrypted);<br \/>\n         System.out.println(new String(decrypted));<br \/>\n      } catch (Exception e) {<br \/>\n         e.printStackTrace();<br \/>\n      }<br \/>\n   }<br \/>\n}[\/code]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bei Symmetrisches Kryptosystemen nutzen Sender und Empf\u00e4nger den selben Schl\u00fcssel um ihre Nachricht vor den Blicken Dritter zu sch\u00fctzen. Folgendes Beispiel zeigt dieses Verfahren mit ein paar Zeilen in Java.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-563","post","type-post","status-publish","format-standard","hentry","category-java","entry"],"_links":{"self":[{"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/posts\/563","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/comments?post=563"}],"version-history":[{"count":2,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/posts\/563\/revisions"}],"predecessor-version":[{"id":623,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/posts\/563\/revisions\/623"}],"wp:attachment":[{"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/media?parent=563"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/categories?post=563"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/tags?post=563"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}