Jawa / Говнокод #28305 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
import java.security.*

var keys = KeyPairGenerator.getInstance("EC").generateKeyPair();
var blankSignature = new byte[64]; // zero bytes
var sig = Signature.getInstance("SHA256WithECDSAInP1363Format");
sig.initVerify(keys.getPublic());
sig.update("Hello, World".getBytes()); // anything
sig.verify(blankSignature); // true

Сказка о том, как джавушки переписали код с небезопасного языка на безопасный и помножили проверку подписей на ноль (в прямом смысле).

https://neilmadden.blog/2022/04/19/psychic-signatures-in-java/

bormand bormand, (Updated )

Комментарии (30, +30)

Jawa / Говнокод #28297 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
import java.util.InputMismatchException;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        try {
            System.out.println("How many characters will be in the password? (1-256):");
            short length = scanner.nextShort();
            if (length > 256) {
                System.out.println("Password can't be longer than 256 characters!");
            } else if (length < 1) {
                System.out.println("Password can't be less than 1 character long!");
            } else {
                System.out.println("How many passwords will be generated? (1-32)");
                byte amount = scanner.nextByte();
                if (amount > 32) {
                    System.out.println("You can't generate more than 32 passwords!");
                } else if (amount < 1) {
                    System.out.println("You can't generate less than 1 password!");
                } else {
                    for (byte i = 0; i < amount; i++) {
                        System.out.println("\n" + PasswordGenerator.generate(length));
                    }
                }
            }
        } catch (InputMismatchException e) {
            System.out.println("Input error!");
        }
    }
}

cringe

zxc254363 zxc254363, (Updated )

Комментарии (0)

Jawa / Говнокод #28278 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
private void calculateOverallTime() {
    if (overallTimeTimer.isTimeOut()) {
        if (overallTime[0] <= 58) {
            overallTime[0] += 1;
        }
        else {
            overallTime[0] = 0;
            if (overallTime[1] <= 58) {
                overallTime[1] += 1;
            }
            else {
                overallTime[1] = 0;
                overallTime[2] += 1;
            }
        }
    }
}

reboober reboober, (Updated )

Комментарии (9, +9)

Jawa / Говнокод #28165 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
package com.company;
import java.util.Scanner;

public class Main {
    public static void main (String [] args) {
         Scanner num = new Scanner(System.in);
         int first;
         System.out.print("Enter first num: ");
         first = num.nextInt();

         if (first==10)
              System.out.print("Num is 10");
}
}

zdavletshin zdavletshin, (Updated )

Комментарии (2, +2)

Jawa / Говнокод #28118 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  42. 42
  43. 43
public class Spot {
    private Piece piece;
    private int x;
    private int y;
  
    public Spot(int x, int y, Piece piece)
    {
        this.setPiece(piece);
        this.setX(x);
        this.setY(y);
    }
  

    public Piece getPiece() // метод возвращает объект фигуру
    {
        return this.piece;
    }
  
    public void setPiece(Piece p)
    {
        this.piece = p;
    }
  
    public int getX()
    {
        return this.x;
    }
  
    public void setX(int x)
    {
        this.x = x;
    }
  
    public int getY()
    {
        return this.y;
    }
  
    public void setY(int y)
    {
        this.y = y;
    }
}

Дизайн шахматной игры
Эти виды вопросов задаются на интервью, чтобы судить о навыке объектно ориентированного дизайна кандидата. Итак, прежде всего, мы должны подумать о классах.
https://habr.com/ru/post/660003/

ISO ISO, (Updated )

Комментарии (75, +75)

Jawa / Говнокод #28107 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
import org.springframework.core.Ordered;
   import org.springframework.core.annotation.Order;
   import org.springframework.web.bind.WebDataBinder;
   import org.springframework.web.bind.annotation.ControllerAdvice;
   import org.springframework.web.bind.annotation.InitBinder;

   @ControllerAdvice
   @Order(10000)
   public class BinderControllerAdvice {
      @InitBinder
      public void setAllowedFields(WebDataBinder dataBinder) {

          String[] denylist = new String[]{"class.", "Class.", ".class.", ".Class."};

          dataBinder.setDisallowedFields(denylist);
      }
   }

Критическая 0-day уязвимость в Spring Framework, применяемом во многих Java-проектах

Работа эксплоита сводится к отправке запроса с параметрами "class.module.classLoader.resources.cont ext.parent.pipeline.first.*", обработка которых при использовании "WebappClassLoaderBase" приводит к обращению к классу AccessLogValve. Указанный класс позволяет настроить логгер для создания произвольного jsp-файла в корневом окружении Apache Tomcat и записи в этот файл указанного атакующим кода. Созданный файл становится доступным для прямых запросов и может использоваться в качестве web shell. Для атаки на уязвимое приложение в окружении Apache Tomcat достаточно отправить запрос с определёнными параметрами при помощи утилиты curl.

curl -v -d "class.module.classLoader.resources.context.parent.pipeline
.first.pattern=код_для_вставки_в_файл
 &class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp
 &class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT
 &class.module.classLoader.resources.context.parent.pipeline.first.prefix=tomcatwar
 &class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=" 
http://localhost:8080/springmvc5-helloworld-exmaple-0.0.1-SNAPSHOT/rapid7

3_dar 3_dar, (Updated )

Комментарии (4, +4)

Jawa / Говнокод #28032 Ссылка на оригинал

0

  1. 1
Багор

Анскильные питухи хранят дату рождения в timestamp или в абстрактном формате Date.
Например, если вы родились 20.05.1986, то это 1986.05.20T00:00:00
Угадайте как в приложении отображается дата рождения москвича, когда он находится в Рио-де-Жанейро?

3_dar 3_dar, (Updated )

Комментарии (16, +16)

Jawa / Говнокод #28015 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
public class ExampleW{
    public static void main(){
        Scanner input = new Scanner(System.in);
        System.out.println("Give mark: ");
        int mark = input.nextInt();
        String Grade;
        switch (mark){
        case 100:
        case 99:
        case 98:
        case 97:
        case 96:
        case 95:
        case 94:
        case 93:
        case 92:
        case 91:
        case 90:{
            Grade = "A+";
            break;
        }case 89:
        case 88:
        case 87:
        case 86:
        case 85:
        case 84:
        case 83:
        case 82:
        case 81:
        case 80: {
            Grade = "A";
            break;
        }case 75:
        case 76:
        case 77:
        case 78:
        case 79:{
            Grade = "A-";
            break;
        }case 70:
        case 71:
        case 72:
        case 73:
        case 74:{
            Grade ="B+";
            break;
        } case 69:
        case 68:
        case 67:
        case 66:
        case 65:{
            Grade ="B";
            break;
        }
        case 64:
        case 63:
        case 62:
        case 61:
        case 60:{
            Grade = "C+";
            break;
        }case 50:
        case 51:
        case 52:
        case 53:
        case 54:
        case 55:
        case 56:
        case 57:
        case 58:
        case 59: {
            Grade = "C";
            break;
        }case 45:
        case 46:
        case 47:
        case 48:
        case 49:{
            Grade = "D";
            break;
        }case 40:
        case 41:
        case 42:
        case 43:
        case 44:{
            Grade = "E";
            break;
        }case 0:
        case 1:
        case 2:
        case 3:
        ...
        ...
        }default: {
            Grade = "null";
            break;
        }}
}

Мистер Хэнки Мистер Хэнки, (Updated )

Комментарии (99, +99)