Ve heard STUBA and StatFin are developing what I had 6 months ago, so open sourcing my solution now for them to help:

Ve heard STUBA and StatFin are developing what I had 6 months ago, so open sourcing my solution now for them to help:

https://hrubos.tech/repo/own_qr_code.zip || https://zive.aktuality.sk/clanok/fBOXlQe/stat-vyvija-system-pre-qr-platby-kodom-sa-vsak-da-platit-uz-teraz-ako-na-to/

extends Node2D
var image: Image
var texture: Texture
var abc:String
var bitsarr = [ #Psova*45
    [0,1,0,1,0,0,0,0],
    [0,1,1,1,0,0,1,1],
    [0,1,1,0,1,1,1,1],
    [0,1,1,1,0,1,1,0],
    [0,1,1,0,0,0,0,1],
    [0,0,1,0,1,0,1,0],
    [0,0,1,1,0,1,0,0],
    [0,0,1,1,0,1,0,1],
]
func cipher_bitsarr(privkey, bitsarr):
    var bitsarr2=bitsarr
    for i in range(0,6):
        if i<3:
            var p = bitsarr2[privkey[i][0]+1][privkey[i][1]]
            bitsarr2[privkey[i][0]+1][privkey[i][1]]=bitsarr2[privkey[i][0]][privkey[i][1]]
            bitsarr2[privkey[i][0]][privkey[i][1]]=p
        else:
            var p = bitsarr2[privkey[i][0]][privkey[i][1]+1]
            bitsarr2[privkey[i][0]][privkey[i][1]+1]=bitsarr2[privkey[i][0]][privkey[i][1]]
            bitsarr2[privkey[i][0]][privkey[i][1]]=p

    return bitsarr2

func genprivkey():
    var rng = RandomNumberGenerator.new()
    randomize()
    var privkey=[]#privkey coords length must be more than 8/2=4<6
    var n=rng.randi_range(0,6)
    var keys=[]
    while keys.size()!=6:
        n=rng.randi_range(0,6)
        if n in keys:
            keys.remove_at(keys.find(n))
        keys.append(n)
    for i in range(5):
        privkey.append([keys[i],keys[i+1]])
    privkey.append([keys[5],keys[0]])
    return privkey #cant be repeated coords in qr chessboard

func _draw():
    draw_texture(texture, Vector2.ZERO)
func _ready() -> void:
    #writeqr(bitsarr)
    var pk=genprivkey()
    print(pk)
    writeqr(cipher_bitsarr(pk,bitsarr))
    #for l in range(int("A".to_ascii_buffer()[0]),int("D".to_ascii_buffer()[0])):
        #print(abc.chr(l))
func writeqr(bitsarr):
    image = Image.create(400, 400, false, Image.FORMAT_RGB8)
    image.fill(Color.WHITE)
    for i in range(0,8):
        for j in range(0,8):
            if bitsarr[i][j]==1:
                write_square_pos(image,j,i)
    texture = ImageTexture.create_from_image(image)
    #get_qr(image)
    queue_redraw()
func write_square_pos(image,posx, posy):
    var a=50
    var xp=posx*a
    var yp=posy*a
    for x in range(xp,xp+a):
        for y in range(yp,yp+a):
            image.set_pixel(x,y,Color.BLACK)
func get_qr(image):
    var a = 25
    var qr=[]
    var coor=[]
    for x in range(0,8):
        coor.append([45*(x+1),a])
        qr.append(image.get_pixel(45*(x+1),a))
    print(qr)
    print(coor)

qr 1 own qr code 2 own qr code 3 own qr code 4 own qr code 4


Author: AarNoma

The first Slovak cyborg 1 system

Comments “Ve heard STUBA and StatFin are developing what I had 6 months ago, so open sourcing my solution now for them to help:”