1. Java / Говнокод #2655

    +75.8

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    package core;
    
    public class Cryptor {
        /**
         * Encodes the String.
         * @param s Source string.
         * @param p Password.
         * @return String
         */
        public static String encode(String s, String p) {
            byte[] str = s.getBytes();
            int h = summ(p);
    
            for(int i = 0; i < str.length; i++) {
                str[i] = (byte) (str[i] ^ h ^ i);
            }
    
            return new String(str,0,str.length);
        }
    
        /**
         * Decodes the String.
         * @param s Source string.
         * @param p Password.
         * @return String
         */
        public static String decode(String s, String p) {
            return encode(s, p);
        }
    
        /**
         * Calculater the hash summ of password.
         * @param p Password.
         */
        public static int summ(String p) {
            int r = -1;
            byte[] str = p.getBytes();
            for(int i = 0; i < str.length; i++) r+=str[i]+i;
            return r;
        }
    }

    Запостил: danilissimus, 24 Февраля 2010

    Комментарии (8) RSS

    • Вообще конечно такие простыни без пояснений постить неправильно.
      Я увидел навскидку только одну проблему - не очень понятно какое поведение у всей этой истории будет при длине строки больше 255.
      Ответить
      • >будет при длине строки больше 255.
        произошла полная хуйня. неправильно дешифруется. то же самое произойдет и если в пароле четное кол-во символов.
        Ответить
    • Доморощенная криптография - это не говно, это образ мысли.
      Ответить
    • package core;
      
      public class Cryptor {
          /**
           * Encodes the String.
           * @param s Source string.
           * @param p Password.
           * @return String
           */
          public static String encode(String s, String p) {
              byte[] str = s.getBytes();
              byte h = summ(p);
              for(int i = 0; i < str.length; i++) {
                  str[i] = (byte) (str[i] ^ h ^ toByte(i));
              }
              return new String(str,0,str.length);
          }
      
          /**
           * Decodes the String.
           * @param s Source string.
           * @param p Password.
           * @return String
           */
          public static String decode(String s, String p) {
              /*byte[] str = s.getBytes();
              byte h = summ(p);
              for(int i = 0; i < str.length; i++) {
                  str[i] = (byte) (str[i] ^ h ^ toByte(i));
              }
              return new String(str,0,str.length);*/
              return encode(s, p);
          }
      
          /**
           * Calculater the hash summ of password.
           * @param p Password.
           */
          public static byte summ(String p) {
              byte r = 0;
              byte[] str = p.getBytes();
              for(int i = 0; i < str.length; i++) r += str[i];
              if(r < 0) r=(byte) -r;
              return r;
          }
      
          public static byte toByte(int i) {
              if(i > 126) return (byte) (Math.abs(i%126-126));
              else return (byte) i;
          }
      }


      полностью рабочий вариант :)
      Ответить
    • жаба говно
      Ответить
    • нынче хеши для паролей - это некашерно! )
      Ответить

    Добавить комментарий