Skip to content

Hacktoberfest-2022 #12

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 281 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
281 commits
Select commit Hold shift + click to select a range
0bf6eb3
Merge pull request #42 from Saurav-Sutaria/main
ajitkumar1264 Oct 1, 2022
d9a8718
Merge pull request #41 from MeetVaishnav23/patch-3
ajitkumar1264 Oct 1, 2022
902cd25
Merge pull request #40 from MeetVaishnav23/patch-2
ajitkumar1264 Oct 1, 2022
6491961
Merge pull request #39 from MeetVaishnav23/patch-1
ajitkumar1264 Oct 1, 2022
49b3d29
Merge pull request #38 from Sparsh225/updatedalgo
ajitkumar1264 Oct 1, 2022
ca389f9
Merge pull request #55 from palaknaugriya/main
ajitkumar1264 Oct 1, 2022
166911f
Merge pull request #37 from itssubhamroy23/main
ajitkumar1264 Oct 1, 2022
cccb786
Merge pull request #35 from dharmanshu1921/main
ajitkumar1264 Oct 1, 2022
ee573bb
Date_and_time
dhirenkokal Oct 1, 2022
668300a
Determinant_of_Matrix
dhirenkokal Oct 1, 2022
3a45dc5
Create FibonacciSeries.java
vmeet95 Oct 1, 2022
90979ea
Merge pull request #57 from vmeet95/patch-1
ajitkumar1264 Oct 1, 2022
cb834a8
Merge pull request #56 from dhirenkokal/main
ajitkumar1264 Oct 1, 2022
a0bb85d
Create ReverseNumberPrint.java
vmeet95 Oct 1, 2022
7a8c16b
Tree data Structure
Sparsh225 Oct 1, 2022
308f34b
Rename tree to treeds
Sparsh225 Oct 1, 2022
5ac3eda
Snake game
dipesh88 Oct 1, 2022
9c2d197
bubblesort in java
Parth013 Oct 1, 2022
853f5d7
Linked List Implementation in Java
richk21 Oct 1, 2022
4670a39
HeapSort program in Java
Parth013 Oct 1, 2022
4a6ce5e
Create shuffling.java
Samyak2000 Oct 1, 2022
8b4a1cc
Create Count the number of words in a string using HashMap.java
SuvojitDev Oct 1, 2022
5dd3545
Polymorphism
ppadmaprasadshenoy Oct 1, 2022
1af9dc7
Create Kadane_Algorithm.java
prakhar-da-gama Oct 1, 2022
08a6b39
oddOrEvenNumber
yusmnn Oct 1, 2022
c7ab752
Merge pull request #67 from prakhar-da-gama/main
ajitkumar1264 Oct 1, 2022
2f0d91d
Merge pull request #66 from ppadmaprasadshenoy/main
ajitkumar1264 Oct 1, 2022
3b5b069
Merge pull request #65 from suvojit0/main
ajitkumar1264 Oct 1, 2022
63102b9
hello
Yash-Agarwal1708 Oct 1, 2022
1a9e447
Create Java program to find maximum product of.java
sazamansari Oct 1, 2022
b7f754b
hacktoberfest-2022
Himanshu-Gupta2001 Oct 1, 2022
c86ae0a
Create K closest elements
fabian-prog Oct 1, 2022
aeedfd3
Add files via upload
sazamansari Oct 1, 2022
d6ee09d
calculator
GauravGulahe Oct 1, 2022
f6c913e
Reverse String Python
SAM-BOGHARA Oct 1, 2022
d71ae5c
Create reverseString.java
SAM-BOGHARA Oct 1, 2022
8fcfd2b
prime number
gauthamsajikumar Oct 1, 2022
76e66b4
Kth Largest Element in an Array
DarkFang1120 Oct 1, 2022
f148ab8
Palindrome
gauthamsajikumar Oct 1, 2022
136d54e
Fibonacci Series
gauthamsajikumar Oct 1, 2022
110f13d
Factorial
gauthamsajikumar Oct 1, 2022
81614ed
Merge pull request #77 from DarkFang1120/main
ajitkumar1264 Oct 1, 2022
f02c79b
Merge pull request #76 from theartemis23/main
ajitkumar1264 Oct 1, 2022
e9afbc4
Merge pull request #74 from SAM-BOGHARA/main
ajitkumar1264 Oct 1, 2022
ab2d2d1
Merge pull request #72 from GauravGulahe/main
ajitkumar1264 Oct 1, 2022
bb72570
Merge pull request #71 from Himanshu-Gupta2001/main
ajitkumar1264 Oct 1, 2022
a6b0e7a
Merge pull request #70 from fabian-prog/patch-1
ajitkumar1264 Oct 1, 2022
e876bfa
Merge pull request #69 from sazamansari/main
ajitkumar1264 Oct 1, 2022
512cf40
Merge pull request #68 from yusmnn/main
ajitkumar1264 Oct 1, 2022
b4f3223
Merge pull request #64 from Samyak2000/main
ajitkumar1264 Oct 1, 2022
22911d5
Merge pull request #63 from TECHBLOOD-BANK/main
ajitkumar1264 Oct 1, 2022
46d4532
Merge pull request #62 from richk21/main
ajitkumar1264 Oct 1, 2022
1313741
Merge pull request #61 from Parth013/main
ajitkumar1264 Oct 1, 2022
04fc308
Merge pull request #60 from Tdsbeast88/main
ajitkumar1264 Oct 1, 2022
7db97b5
Merge pull request #59 from Sparsh225/CompleteTreeDS
ajitkumar1264 Oct 1, 2022
157ba47
Merge pull request #58 from vmeet95/patch-2
ajitkumar1264 Oct 1, 2022
cbbd909
DNF algo to sort an array of 0 1 and 2
PratyushSingh07 Oct 1, 2022
f2756bf
Merge branch 'ajitkumar1264:main' into main
PratyushSingh07 Oct 1, 2022
7e10e0c
hactoberfest-2022
Asmit-Kumar0 Oct 1, 2022
6a6ee7a
puzzleGame
nishitv2898 Oct 1, 2022
5227799
Oops Cmcept
harendrabhardwaj Oct 1, 2022
5accaac
armstrongCheck
nishitv2898 Oct 1, 2022
058baf4
Create recursion.java
sazamansari Oct 1, 2022
9e9149c
Create Search using BinarySearch
sayam13 Oct 1, 2022
714075b
Create Number_guessing_game.java
chetanbogali Oct 1, 2022
87d480d
hacktoberfest - 2022
chetanbogali Oct 1, 2022
addcfd5
hacktoberfest - 2022
chetanbogali Oct 1, 2022
f552bd7
hacktoberfest - 2022
chetanbogali Oct 1, 2022
71a037b
ActivitySelection
moksh2212 Oct 1, 2022
ef665c2
dequeue
Dharanash Oct 1, 2022
03c77b6
hacktoberfest - 2022
chetanbogali Oct 1, 2022
25d8750
reversing array
Nivedpv2004 Oct 1, 2022
ecf62fe
hacktoberfest - 2022
chetanbogali Oct 1, 2022
1263bb7
Create bubblesorthacktoberfest.java
PRATYUSH18SONI Oct 1, 2022
cde57cf
Create Binary_Search.java
Muskankhoiya Oct 1, 2022
f42ad13
Linear_Search.java
Muskankhoiya Oct 1, 2022
8dc0acc
Dijkstra's Algorithm
Arka90 Oct 1, 2022
a605d60
Linkedlist Implementation
Ragvendra1Rathore2 Oct 1, 2022
08bfbd0
Radix Sort
Ragvendra1Rathore2 Oct 1, 2022
67ef8de
Tree Traversal
sratna15 Oct 1, 2022
7802196
RatMaze
kara751 Oct 1, 2022
c6bb272
Create Inheritance-in-java.java
sazamansari Oct 1, 2022
73a38bf
Create bubble_sort.java
batrakeshav10 Oct 1, 2022
4d8e4f5
Created Kadane.java for issue #34
PratyayDhond Oct 2, 2022
9112e43
Merge pull request #1 from PratyayDhond/Created-Kadane's-algortihm-co…
PratyayDhond Oct 2, 2022
9d13e60
Add files via upload
shubham-7430 Oct 2, 2022
64ba8a5
fileHandler
Williamluqui Oct 2, 2022
58bae5b
Merge pull request #101 from Williamluqui/main
ajitkumar1264 Oct 2, 2022
1452f55
Merge pull request #79 from PratyushSingh07/main
ajitkumar1264 Oct 2, 2022
ce8592a
Merge pull request #80 from Asmit-Kumar0/main
ajitkumar1264 Oct 2, 2022
35d5ec0
Merge pull request #81 from nishitv2898/main
ajitkumar1264 Oct 2, 2022
20ec451
Merge pull request #82 from harendrabhardwaj/main
ajitkumar1264 Oct 2, 2022
56893bc
Merge pull request #85 from sayam13/main
ajitkumar1264 Oct 2, 2022
3329d59
Merge pull request #86 from chetanbogali/main
ajitkumar1264 Oct 2, 2022
8edfbc3
Job Sequencing
tejthete Oct 2, 2022
e232f02
Create Sudoku Solver
sonali1905 Oct 2, 2022
da0490d
Merge pull request #87 from moksh2212/main
ajitkumar1264 Oct 2, 2022
fd9679c
Merge branch 'ajitkumar1264:main' into main
sonali1905 Oct 2, 2022
b620dc9
Merge pull request #88 from Dharanash/main
ajitkumar1264 Oct 2, 2022
38aa0bd
Merge pull request #89 from nivedpv21040/main
ajitkumar1264 Oct 2, 2022
1d7a756
Merge pull request #90 from PRATYUSH18SONI/main
ajitkumar1264 Oct 2, 2022
41584af
Merge pull request #91 from Muskankhoiya/patch-1
ajitkumar1264 Oct 2, 2022
721e01a
Merge pull request #92 from Muskankhoiya/patch-2
ajitkumar1264 Oct 2, 2022
10ea070
Merge pull request #93 from Arka90/main
ajitkumar1264 Oct 2, 2022
620e693
Merge pull request #94 from Ragvendra1Rathore2/main
ajitkumar1264 Oct 2, 2022
56152ec
Merge pull request #95 from Ragvendra1Rathore2/patch-1
ajitkumar1264 Oct 2, 2022
ae38c02
Merge pull request #96 from exploe08/main
ajitkumar1264 Oct 2, 2022
1a1d0dc
Merge pull request #97 from kara751/main
ajitkumar1264 Oct 2, 2022
18c2dfb
Hacktoberfest 2022
souvikpal2000 Oct 2, 2022
88d4749
Merge pull request #98 from batrakeshav10/main
ajitkumar1264 Oct 2, 2022
876a2f3
Merge pull request #99 from PratyayDhond/main
ajitkumar1264 Oct 2, 2022
111b3b0
hactoberfest-2022
Asmit-Kumar0 Oct 2, 2022
7ca5e8c
Method_overloading
ujjawalkr67 Oct 2, 2022
db7428f
insertion sort
Patel-armin Oct 2, 2022
6620fc0
Add files via upload
harendrabhardwaj Oct 2, 2022
0c4511d
Create Swap Numbers
shubhamsingla807 Oct 2, 2022
6404c3b
hacktoberfest event
harendrabhardwaj Oct 2, 2022
7a40960
insertion sort algorithm
Niladri-bit Oct 2, 2022
abf6863
Create stringpalindrome.java
YASH-VATS-7 Oct 2, 2022
d3a6fe2
TimSort
Madhusankha Oct 2, 2022
59d1630
Floyd Triangle
Swetaswa Oct 2, 2022
94b888a
Linklist implementation
deecode15800 Oct 2, 2022
2ae16f7
Update BinarySearch.java
MrfoxAK Oct 2, 2022
a4802de
Disarium number
Swetaswa Oct 2, 2022
d474773
AVL Tree Java Program
pathuS13 Oct 2, 2022
2deb2b5
Merge pull request #100 from shubham-7430/main
ajitkumar1264 Oct 2, 2022
96515c9
Create NumberFrequencyofArray.java
vmeet95 Oct 2, 2022
5266890
Merge pull request #102 from sonali1905/main
ajitkumar1264 Oct 2, 2022
9556a97
Merge pull request #103 from tejthete/main
ajitkumar1264 Oct 2, 2022
e1b6cdd
Merge pull request #104 from souvikpal2000/main
ajitkumar1264 Oct 2, 2022
56b9ea1
Merge pull request #105 from Asmit-Kumar0/main
ajitkumar1264 Oct 2, 2022
a22ed13
Merge pull request #106 from ujjawalkr67/main
ajitkumar1264 Oct 2, 2022
179afe1
Merge pull request #107 from Patel-armin/main
ajitkumar1264 Oct 2, 2022
ce18efd
Merge pull request #108 from harendrabhardwaj/main
ajitkumar1264 Oct 2, 2022
2fd073c
added the code for linked list operations
anuj-thakur-513 Oct 2, 2022
d41c3a9
Merge pull request #109 from shubhamsingla807/patch-1
ajitkumar1264 Oct 2, 2022
a05a35a
Merge pull request #110 from Niladri-bit/main
ajitkumar1264 Oct 2, 2022
e873ca9
Merge pull request #111 from YASH-VATS-7/main
ajitkumar1264 Oct 2, 2022
9b24f55
Merge pull request #112 from Madhusankha/main
ajitkumar1264 Oct 2, 2022
9daefed
Merge pull request #113 from Swetaswa/main
ajitkumar1264 Oct 2, 2022
4a091c2
Create QuickSort.java
Ishh1505 Oct 2, 2022
b3b89f5
Merge pull request #114 from MrfoxAK/patch-2
ajitkumar1264 Oct 2, 2022
0968f8b
Merge pull request #115 from deecode15800/main
ajitkumar1264 Oct 2, 2022
25ea8e8
Check if a 9x9 sudoku is valid
Swetaswa Oct 2, 2022
09af20e
Add my file to your repository with label as hacktoberfest
darakhshad11 Oct 2, 2022
2378e43
Binary Tree Code In Java
KrishnaS97 Oct 2, 2022
aa43e08
Roman Number to Integers
Krishnabhadauria Oct 2, 2022
8dc1de3
AVL Tree Program In Java
rs2028 Oct 2, 2022
579aacf
Added Heap sort program in JAVA.
surajsharma14 Oct 2, 2022
3efcf16
Added radix sort.md
Ritanshusharma2 Oct 2, 2022
d97fac4
added selection-sort
bhagat2k Oct 2, 2022
199ef15
Create Counting_Sort.java
Muskankhoiya Oct 2, 2022
6adf333
Heap_Sort
Muskankhoiya Oct 2, 2022
5dbdd3f
SieveOfEratosthenes
anshika9946 Oct 2, 2022
9a4d7f2
Create Bucketsort.java
iamveetragnahar Oct 2, 2022
75e96ab
Create Shellsort.java
iamveetragnahar Oct 2, 2022
cd1b6dc
Create Timesort.java
iamveetragnahar Oct 2, 2022
eb7d294
Create Comb_sort.java
iamveetragnahar Oct 2, 2022
dba6947
Create CombSortInJave.java
Ragvendra1Rathore2 Oct 2, 2022
803daa3
Create CocktailSort.java
Ragvendra1Rathore2 Oct 2, 2022
34540dd
Sierpinski triangle using java
Yash-Agarwal1708 Oct 2, 2022
bb2f9aa
Delete hello
Yash-Agarwal1708 Oct 2, 2022
f38057c
Add files via upload
Rishityadav02 Oct 2, 2022
f89d2cc
hacktoberfest-2022
tharuka01 Oct 2, 2022
60e9882
Merge pull request #141 from tharuka01/patch-1
ajitkumar1264 Oct 2, 2022
1fb1a1d
Merge pull request #84 from sazamansari/main
ajitkumar1264 Oct 2, 2022
fa7418e
Merge pull request #116 from pathuS13/main
ajitkumar1264 Oct 2, 2022
38ee83b
Merge pull request #117 from vmeet95/patch-3
ajitkumar1264 Oct 2, 2022
ce01218
Merge pull request #118 from anuj-thakur-513/main
ajitkumar1264 Oct 2, 2022
9eaa1ea
Merge pull request #119 from Ishh1505/patch-1
ajitkumar1264 Oct 2, 2022
2e91cfb
Merge pull request #120 from Swetaswa/main
ajitkumar1264 Oct 2, 2022
56b85ed
Merge pull request #121 from fiza0786/main
ajitkumar1264 Oct 2, 2022
d4f803d
Merge pull request #122 from KrishnaS97/main
ajitkumar1264 Oct 2, 2022
8f2621c
Merge pull request #123 from Krishnabhadauria/main
ajitkumar1264 Oct 2, 2022
5795772
Merge pull request #124 from rs2028/main
ajitkumar1264 Oct 2, 2022
9588c8e
Merge pull request #125 from surajsharma14/main
ajitkumar1264 Oct 2, 2022
cb666e1
Merge pull request #126 from Ritanshusharma2/main
ajitkumar1264 Oct 2, 2022
93ed436
Merge pull request #127 from adityeah2k/main
ajitkumar1264 Oct 2, 2022
cd88356
Merge pull request #128 from Muskankhoiya/patch-3
ajitkumar1264 Oct 2, 2022
72d30ce
Merge pull request #129 from Muskankhoiya/patch-4
ajitkumar1264 Oct 2, 2022
491ea26
Merge pull request #130 from anshika9946/main
ajitkumar1264 Oct 2, 2022
ac53e79
Merge pull request #131 from veetragnahar/main
ajitkumar1264 Oct 2, 2022
e6ff754
Bubblesort
Sonaelizebeth Oct 2, 2022
01c4041
Merge pull request #132 from veetragnahar/patch-1
ajitkumar1264 Oct 2, 2022
e6417b6
Merge pull request #133 from veetragnahar/patch-2
ajitkumar1264 Oct 2, 2022
0d98cb5
Merge pull request #134 from veetragnahar/patch-3
ajitkumar1264 Oct 2, 2022
fbe3e75
Merge pull request #135 from Ragvendra1Rathore2/patch-2
ajitkumar1264 Oct 2, 2022
67e49a6
Merge pull request #136 from Ragvendra1Rathore2/patch-3
ajitkumar1264 Oct 2, 2022
2a711d5
NEW FILE
The2008akiya Oct 2, 2022
ee80bad
Merge pull request #139 from Yash-Agarwal1708/main
ajitkumar1264 Oct 2, 2022
4378ddc
Create reverseLinkedList.py
SAM-BOGHARA Oct 2, 2022
cf697f1
please add my code to your repo
Oct 2, 2022
a7615e8
Python
aashishjakhar Oct 2, 2022
5238c4b
Netconf-static-route
Oct 2, 2022
f7657a1
finding ceiling num in array using Binary Search
walkerthecreator Oct 2, 2022
7514074
Brijesh
Brijesh124 Oct 2, 2022
183d765
Add files via upload
AnkushMalhotragithub Oct 2, 2022
4a8cdc6
Factorial Series
ManuFake Oct 2, 2022
b0810b3
Create factorial3.cpp
alokya88 Oct 2, 2022
73ea828
feat for merge two arrays
walkerthecreator Oct 2, 2022
4eaaa08
Create Tower_Of_Hanoi.c
Vaibhav832 Oct 2, 2022
5bcbe7f
Searching in matrix
walkerthecreator Oct 2, 2022
adbb6fb
Create swapoftwonumber.java
riyasinghal123 Oct 2, 2022
9bb4e30
Trapping_rainwater
DevAquib Oct 2, 2022
842e297
Add files via upload
pooja2693 Oct 2, 2022
ed4d815
hacktoberfest2022
BUNNY2210 Oct 2, 2022
2eef3bb
Breadth First Search
sratna15 Oct 2, 2022
b815d4d
knapsack_problem
Sejzz Oct 2, 2022
7bf91e3
binary_search
sejalkothari Oct 2, 2022
9978eb4
Create Swap.cpp
vaibhvmalkar Oct 2, 2022
b73e9f0
selection_sort
sejalkothari45 Oct 2, 2022
95a9794
knapsack.java
sejsam Oct 2, 2022
474aec8
tsp(travelling salesman problem)
Samriddh2703 Oct 2, 2022
9dd5335
Sierpinski
Tdms2589 Oct 2, 2022
a5663c1
quickSort_Last_Pivot
kumaratul2002 Oct 3, 2022
fd31431
Merge pull request #144 from SAM-BOGHARA/main
ajitkumar1264 Oct 3, 2022
c1ee966
Merge pull request #143 from The2008akiya/main
ajitkumar1264 Oct 3, 2022
bd60713
Merge pull request #147 from Brijesh124/main
ajitkumar1264 Oct 3, 2022
0a7f671
Merge pull request #140 from Rishityadav02/main
ajitkumar1264 Oct 3, 2022
7eb01b2
Merge pull request #142 from Sonaelizebeth/main
ajitkumar1264 Oct 3, 2022
cfa43be
Merge pull request #145 from hilmyrasyiq/hacktoberfest-2022
ajitkumar1264 Oct 3, 2022
b80ba6e
Merge pull request #146 from aashishjakhar/main
ajitkumar1264 Oct 3, 2022
dd18ae5
Merge pull request #148 from AnkushMalhotragithub/main
ajitkumar1264 Oct 3, 2022
32e28fa
Merge pull request #149 from walkerthecreator/CeilingNum
ajitkumar1264 Oct 3, 2022
6c64ef3
Merge pull request #150 from ManuFake/main
ajitkumar1264 Oct 3, 2022
f7793d4
Added implementation of AES algorithm
xsnatchysquidx Oct 3, 2022
ad5f0b0
Merge pull request #151 from alokya88/main
ajitkumar1264 Oct 3, 2022
40bd60c
Merge pull request #152 from Vaibhav832/patch-1
ajitkumar1264 Oct 3, 2022
93f9ec1
Merge pull request #153 from walkerthecreator/mergeArrays
ajitkumar1264 Oct 3, 2022
2df5ed9
Merge pull request #154 from walkerthecreator/searchin2dArray
ajitkumar1264 Oct 3, 2022
f3943dc
Merge pull request #155 from riyasinghal123/main
ajitkumar1264 Oct 3, 2022
1351093
Merge pull request #156 from Aquib86/main
ajitkumar1264 Oct 3, 2022
218e213
Merge pull request #157 from pooja2693/main
ajitkumar1264 Oct 3, 2022
cae783b
Merge pull request #158 from BUNNY2210/main
ajitkumar1264 Oct 3, 2022
cf129c9
Merge pull request #159 from exploe08/main
ajitkumar1264 Oct 3, 2022
72a6592
Merge pull request #160 from Sejzz/main
ajitkumar1264 Oct 3, 2022
5819618
Merge pull request #161 from sejalkothari/main
ajitkumar1264 Oct 3, 2022
b0d0cc9
Merge pull request #162 from vaibhvmalkar/main
ajitkumar1264 Oct 3, 2022
4d2ca80
Merge pull request #163 from sejalkothari45/main
ajitkumar1264 Oct 3, 2022
783439b
Merge pull request #165 from sejsam/main
ajitkumar1264 Oct 3, 2022
8912279
Merge pull request #166 from Samriddh2703/main
ajitkumar1264 Oct 3, 2022
3cee0f4
Merge pull request #167 from Tdms2589/main
ajitkumar1264 Oct 3, 2022
0ee77e9
Merge pull request #168 from kumaratul2002/main
ajitkumar1264 Oct 3, 2022
6d91bc8
Merge pull request #169 from snatchysquid/aes-algorithm
ajitkumar1264 Oct 3, 2022
9179e32
Tree Implementation
aminlodhiya Oct 3, 2022
727b698
Merge pull request #175 from Mahmadamin08/main
ajitkumar1264 Oct 3, 2022
3b14201
Tower of hanoi
parmishh Oct 3, 2022
9de7092
Merge Sort
parmishh Oct 4, 2022
186d190
Towerofhanoi
parmishh Oct 13, 2022
93fadcf
TowerOfHanoi
parmishh Oct 13, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
219 changes: 219 additions & 0 deletions AES_algo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,219 @@
public class AES {
private static final byte[] sBox = new byte[] {
0x63, 0x7c, 0x77, 0x7b, -0x0e, 0x6b, 0x6f, -0x3b, 0x30, 0x01, 0x67, 0x2b, -0x02, -0x29, -0x55, 0x76,
-0x36, -0x7e, -0x37, 0x7d, -0x06, 0x59, 0x47, -0x10, -0x53, -0x2c, -0x5e, -0x51, -0x64, -0x5c, 0x72, -0x40,
-0x49, -0x03, -0x6d, 0x26, 0x36, 0x3f, -0x09, -0x34, 0x34, -0x5b, -0x1b, -0x0f, 0x71, -0x28, 0x31, 0x15,
0x04, -0x39, 0x23, -0x3d, 0x18, -0x6a, 0x05, -0x66, 0x07, 0x12, -0x80, -0x1e, -0x15, 0x27, -0x4e, 0x75,
0x09, -0x7d, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, -0x60, 0x52, 0x3b, -0x2a, -0x4d, 0x29, -0x1d, 0x2f, -0x7c,
0x53, -0x2f, 0x00, -0x13, 0x20, -0x04, -0x4f, 0x5b, 0x6a, -0x35, -0x42, 0x39, 0x4a, 0x4c, 0x58, -0x31,
-0x30, -0x11, -0x56, -0x05, 0x43, 0x4d, 0x33, -0x7b, 0x45, -0x07, 0x02, 0x7f, 0x50, 0x3c, -0x61, -0x58,
0x51, -0x5d, 0x40, -0x71, -0x6e, -0x63, 0x38, -0x0b, -0x44, -0x4a, -0x26, 0x21, 0x10, -0x01, -0x0d, -0x2e,
-0x33, 0x0c, 0x13, -0x14, 0x5f, -0x69, 0x44, 0x17, -0x3c, -0x59, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,
0x60, -0x7f, 0x4f, -0x24, 0x22, 0x2a, -0x70, -0x78, 0x46, -0x12, -0x48, 0x14, -0x22, 0x5e, 0x0b, -0x25,
-0x20, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, -0x3e, -0x2d, -0x54, 0x62, -0x6f, -0x6b, -0x1c, 0x79,
-0x19, -0x38, 0x37, 0x6d, -0x73, -0x2b, 0x4e, -0x57, 0x6c, 0x56, -0x0c, -0x16, 0x65, 0x7a, -0x52, 0x08,
-0x46, 0x78, 0x25, 0x2e, 0x1c, -0x5a, -0x4c, -0x3a, -0x18, -0x23, 0x74, 0x1f, 0x4b, -0x43, -0x75, -0x76,
0x70, 0x3e, -0x4b, 0x66, 0x48, 0x03, -0x0a, 0x0e, 0x61, 0x35, 0x57, -0x47, -0x7a, -0x3f, 0x1d, -0x62,
-0x1f, -0x08, -0x68, 0x11, 0x69, -0x27, -0x72, -0x6c, -0x65, 0x1e, -0x79, -0x17, -0x32, 0x55, 0x28, -0x21,
-0x74, -0x5f, -0x77, 0x0d, -0x41, -0x1a, 0x42, 0x68, 0x41, -0x67, 0x2d, 0x0f, -0x50, 0x54, -0x45, 0x16
};
private static final int NB = 4;
private static final int NK = 4;
private static final int NR = 10;

private static final byte[] rCon = new byte[] {
0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, -0x80, 0x1b, 0x36
};
public byte[] key = new byte[4*NK];
public byte[][] state = new byte[4][NB];
public byte[][] keySchedule = new byte[NR+1][NB*4];

public AES(String stringKey) {
if (stringKey.length() == NK*8) {
this.key = hexStringToBytes(stringKey);
}
}
private static byte[] hexStringToBytes(String key) {
byte[] bytesKey = new byte[NK * 4];
for (int i = 0; i < 4 * NK; i++) {
bytesKey[i] = (byte) Integer.parseInt(key.substring(2 * i, 2 * (i + 1)), 16);
}
return bytesKey;
}
public void setKey(String stringKey) {
if (stringKey.length() == NK*8) {
this.key = hexStringToBytes(stringKey);
}
}
/**
* returns string of ciphertext
* @param plainText text to encrypt
* @return ciphertext
*/
public String encrypt(String plainText) {
if (plainText.length() != 8 * NB || key.length != 4 * NK) {
return null;
}
byte[] bytePlainText = hexStringToBytes(plainText);
// place plaintext in state array
for (int r = 0; r < 4; r++) {
for (int c = 0; c < NB; c++) {
state[r][c] = bytePlainText[4 * c + r];
}
}
keyExpansion();
addRoundKey(0); // round 0
for (int round = 1; round < NR; round++) {
subBytes();
shiftRows();
mixColumns();
addRoundKey(round);
}
subBytes();
shiftRows();
addRoundKey(10);
return stateToOutput(state);
}
/**
* coverts state array to output string
* @param bytes state array
* @return bytes of state array ordered into a string
*/
private String stateToOutput(byte[][] bytes) {
StringBuilder res = new StringBuilder();
for (int c = 0; c < NB; c++) {
for (int r = 0; r < 4; r++) {
String sB = Integer.toString(bytes[r][c] & 0xff, 16);
res.append(sB.length() == 1 ? '0' + sB : sB);
}
}
return res.toString();
}
/**
* XORes the state with the appropriate words from the key schedule
* @param round current round to choose which word to use
*/
public void addRoundKey(int round) {

for (int r = 0; r < 4; r++) {
for (int c = 0; c < NB; c++) {
state[r][c] ^= keySchedule[round][4 * c + r];
}
}
}
/**
* creates key schedule for the algorithm from encryption key
*/
public void keyExpansion() {
System.arraycopy(key, 0, keySchedule[0], 0, 4*NK); // copy key into first indices of key schedule
for (int i = NK; i < NB * (NR + 1); i++) {
byte[] previousWord = new byte[4], temp;
System.arraycopy(keySchedule[(i - 1) / NK], 4 * ((i - 1) % NK), previousWord, 0, 4);
if (i % NK == 0) {
temp = subWord(rotateWord(previousWord));
temp[0] ^= rCon[i / NK - 1]; // xor with the rConstant
} else {
temp = previousWord;
}
// copy the new word into the key schedule
for (int j = 0; j < 4; j++) {
keySchedule[i / NK][4 * (i % 4) + j] = (byte) (keySchedule[i / NK - 1][4 * (i % 4) + j] ^ temp[j]);
}
}
}
/**
* passes word through sBox for keyExpansion
* @param word word to sBox
* @return sBoxed word
*/
private static byte[] subWord(byte[] word) {
byte[] subbedWord = new byte[4];
for (int i = 0; i < 4; i++) {
subbedWord[i] = sBox[word[i] & 0xff];
}
return subbedWord;
}
/**
* rotates the word by one byte to the left
* @param word word to rotate
* @return rotate word
*/
public byte[] rotateWord(byte[] word) {
byte[] shiftedWord = new byte[4];
for (int i = 0; i < 4; i++) {
shiftedWord[i] = word[(i + 1) % 4];
}
return shiftedWord;
}
/**
* applies mixColumns operation on state array
*/
public void mixColumns() {
for (int c = 0; c < NB; c++) {
byte[] tempColumn = new byte[4];
// first preform operation on temp array so not to overwrite the original needed values
for (int r = 0; r < 4; r++) {
tempColumn[r] = mixColumnsHelper(r, c);
}

for (int r = 0; r < 4; r++) {
state[r][c] = tempColumn[r];
}
}
}
/**
* returns XOR operation needed for mixColumns
* @param r row of byte
* @param c column of byte
* @return new value for byte in state array
*/
public byte mixColumnsHelper(int r, int c) {
return (byte) (multiplyBy02(state[r][c])
^ multiplyBy03(state[(r + 1) % 4][c])
^ state[(r + 2) % 4][c]
^ state[(r + 3) % 4][c]);
}

/**
* preforms multiplication by two in GF(2^8)
* @param val value to multiply with
* @return product
*/
public byte multiplyBy02(byte val) {
return (byte) ((val << 1) ^ ((val & 0x80) == 0x00 ? 0x00 : 0x11b));
}

public byte multiplyBy03(byte i) {
// 3 * z = 2 * z + 1 * z
return (byte) (multiplyBy02(i) ^ i);
}

/**
* applies the shiftRows operation on the state array
*/
public void shiftRows() {
for (int r = 1; r < 4; r++) {
byte[] tempRow = new byte[NB];
System.arraycopy(state[r], 0, tempRow, 0, NB);
for (int c = 0; c < NB; c++) {
state[r][c] = tempRow[(r + c) % NB];
}
}
}

/**
* preforms the sBox operation on the state array
*/
public void subBytes() {
for (int r = 0; r < NB; r++) {
for (int c = 0; c < NB; c++) {
state[r][c] = sBox[state[r][c] & 0xff];
}
}
}

public static void main(String[] args) {
AES aes = new AES("2b7e151628aed2a6abf7158809cf4f3c");
System.out.println("Cipher Text: " + aes.encrypt("3243f6a8885a308d313198a2e0370734"));
}
}
Loading