Byla vydána verze 26.1 aneb čtvrtletní aktualizace open source počítačového planetária Stellarium (Wikipedie, GitHub). Vyzkoušet lze webovou verzi Stellaria na Stellarium Web.
VOID (Video Object and Interaction Deletion) je nový open-source VLM model pro editaci videa, který dokáže z videí odstraňovat objekty včetně všech jejich fyzikálních interakcí v rámci scény (pády, kolize, stíny...) pomocí quadmaskingu (čtyřhodnotová maska, která člení pixely scény do čtyř kategorií: objekt určený k odstranění, překrývající se oblasti, objektem ovlivněné oblasti a pozadí scény) a dvoufázového inpaintingu. Za projektem stojí výzkumníci ze společnosti Netflix.
Design (GitHub) je 2D CAD pro GNOME. Instalovat lze i z Flathubu. Běží také ve webovém prohlížeči.
Příspěvek na blogu herního enginu Godot představuje aplikaci Xogot přinášející Godot na iPad a iPhone. Instalovat lze z App Storu. Za Xogotem stojí Miguel de Icaza (GitHub) a společnost Xibbon.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za březen (YouTube).
ESP-IDF (Espressif IoT Development Framework), tj. oficiální vývojový framework pro vývoj aplikací na mikrokontrolérech řady ESP32, byl vydán v nové verzi 6.0. Detaily na portálu pro vývojáře.
DeepMind (Alphabet) představila novou verzi svého multimodálního modelu, Gemma 4. Modely jsou volně k dispozici (Ollama, Hugging Face a další) ve velikostech 5-31 miliard parametrů, s kontextovým oknem 128k až 256k a v dense i MoE variantách. Modely zvládají text, obrázky a u menších verzí i audio. Modely jsou optimalizované pro běh na desktopových GPU i mobilních zařízeních, váhy všech těchto modelů jsou uvolněny pod licencí Apache 2.0. Návod na spuštění je už i na Unsloth.
Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 3. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).
Průkopnická firma FingerWorks kolem roku 2000 vyvinula vícedotykové trackpady s gesty a klávesnice jako TouchStream LP. V roce 2005 ji koupil Apple, výrobu těchto produktů ukončil a dotykové technologie využil při vývoji iPhone. Multiplatformní projekt Apple Magic TouchstreamLP nyní implementuje funkcionalitu TouchStream LP na současném Apple Magic Trackpad, resp. jejich dvojici. Diskuze k vydání probíhá na Redditu.
Byla vydána nová verze 10.3 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu bezpečnostních oprav, vylepšení funkcí a oprav chyb.
from Crypto.PublicKey import RSA decoded = base64.standard_b64decode(crypted_message) return RSA.importKey(rsa_decryption_key).decrypt(decoded)Tenhle kód teď vypíše
NotImplementedError: Use module Crypto.Cipher.PKCS1_OAEP instead. Našel jsem tedy návod a změnil kód na:
from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_OAEP decoded = base64.standard_b64decode(crypted_message) key = RSA.importKey(rsa_decryption_key) decryptor = PKCS1_OAEP.new(key) return decryptor.decrypt(decoded)Pokud použiju PyCryptodome pro encrypt i decrypt, funguje to hezky, ale pokud zkusím nový decrypt na starý encrypt, vyhodí to
ValueError: Incorrect decryption..
Pokud by někdo náhodou tušil, kde dělám chybu, nebo věděl že to prostě nemá řešení, budu moc rád, když se o tu informaci podělí. Děkuji.
qSuzVLpUOH5aXN71tZbh70AXycRKbDVKAVb33f7y7WEMFzJ+80dh+YXBdNBeYzVQ0K9j7hE8qz59JbZ0F4AWYr51L6SIv40d7VUDrzQd0umtRb4ZVrpnl4mG5ta8n+7MD6R59v3SOt5UZH9oM3w225P5gYHtykbUeOo1LggqR8rPU0PriOzCozuAHakCPQxHDlDLh63IJHU3WrNGSq5yRQiq+FvdnUDlOdczgmiT6eGZnoys5p/+NrOdH6XC+pczkMS6NKj+Z23PqPBIkGy+2vVy1EOF86n+8VvL1Ew0Y86Ts/X16nutit1rdPobFQf93KNU6JucPaTYN3Mr/st+zg==a privátní klíč
-----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAyfBPdPSZQiLHdUAWke3s50PuQNhMVyTUjA5pL4ilikTsSkXi wpqDuj6qbX8aOeLqaUNH9KnVRTAaxtM+iH2k5nl+ZK1RIknyyDyMQi7jLfFN8fts raFH8HxFNh2DyQ8JpusXwhH8FocuNgpHpQmQMV5KWGv5NtVE1pY7zRW7lf65zJ1j b6yCsBQxAwu3bJ18Jc5stQq5v+GSUn9mwpHqbbjX2YmgCSRei2Hm3VrTC9CTYSNm 8fWfBBw5sejInlLjDNK/FJ5lTYz4XY63wbN6yBQdUBypo+iAxAinrkz8Pgklriom 1nw5G1YkUEtLQvS98DT8d9/dJBnETCr4hVUgLwIDAQABAoIBAFhMK3IIQbsZWf16 uGO2lQ/KNDNGYJr6D7Xt1zBhn4CGAou3Yx+UUGTvYbXfDaih/71nHd9tI0PNdOfb Fky4I5JjLVD4N7G2g+HqF6oYtl0wVdSpCywgiUQuElVHMoiHesDxqsHA+2keUqZu eEVBmTr876UaES5YsnDh3+QczJkYsVi32p6SvnW3wpX6JxE2nfHyw2V9glmtwlSF 6s81fpUXH7g2BXNy7QXmOj2IPnll6wj8iF2L7zzyKmUG8hLpWR73RfTCXf3Q3Spb QtH6ZYXXTMbpHEmJlZMXTGqDcfFvg/OhliVUpB4HG9YWipU7yhClZuxFNMtlNmvL 2PU6qAECgYEA3LegaD9bldgaRzAm+ea8glHezauf/nxVMwOZV8zef0HjXjspkdX1 GVh7z50lGdQytTyTT662KnS3y/5kyEDZNMRZjICTv/qHXhsEKEDqn6zI2YDhq15a iuDpBbfS40dfuJ+83GCzDUguCOwVe0cb0b4BXsuh2A7Q6QTQinCBM0ECgYEA6jg2 IEt/Z/rMGXEnYBVofNMSczlvhXSTIECsmpA2gvJ3F/+p+YhM2qHJ7lZXxzXcuGrR +QNRELX5BG93N3NitBG5nj7G3n9XsXVZ/LtFSXOoSx2B3IPSlAFPqfN5/Hm40Ke/ rZi1gSJi6KyD2Zkp+WDNxvd2Lz6BA7iJ/EtBJ28CgYAX8ti11wIR/TPEu6XPAck8 frOlL1UZ4NXBxkcyLqmJt1V7WQIGr+d7S42Llmp7Jfomjh8Ry0w6yRVUThMTY23t +swYoa7masGbZWULFRggIThd2U0jMgazAPpnw21fedQaDUMJynhDHazZDPy7tph/ JpWxenjiH6FtVzdlfhWWwQKBgEJjTHQ68hH29IMBn7eMWeGHsmMWlJWvRUSPEF1/ IvRa5YbX4MXp7F7MHQCBWMAOdFGRdZKvbfremYa4UYJWIlQH8iT4hkXqsmCKcsdA DZOURM+FvZlThAyPkpUJfjoiBlCeO6Zo8ol3xbFNtNGoqE0XMzyCR+18OfVkCTiJ 3B3hAoGABdu7ojnq3CBTJEk/Qw/AIkeo0auzsgJIBX0DRZ+Y4U3JdH88B2QYARV4 RMwOCnKBUtfO2V92XGGk6gnnJWcrbVDOXUdWhRZWWeGkvRX57VDx3dRc9nEw1whx AFh2PFzyxPOqhEdj8tvpE9pXxK8NuJueZVWW9oc6cMWpeb+vk9U= -----END RSA PRIVATE KEY-----
Řešení dotazu:
openssl base64 -d -in message.base64 -out message rsautl -decrypt -oaep -inkey key.pem -in message -out message.out 140636538956544:error:040A1079:rsa routines:RSA_padding_check_PKCS1_OAEP_mgf1:oaep decoding error:rsa_oaep.c:234: 140636538956544:error:04065072:rsa routines:RSA_EAY_PRIVATE_DECRYPT:padding check failed:rsa_eay.c:602: openssl rsautl -decrypt -raw -inkey key.pem -in message -out message.out cat message.out aha
def bytes_to_int(bytes):
result = 0
for b in bytes:
result = result * 256 + ord(b)
return result
def int_to_bytes(value, length):
result = []
for i in range(0, length):
result.append(chr(value >> (i * 8) & 0xff))
result.reverse()
return b''.join(result)
def decrypt_rsa(crypted_message, rsa_decryption_key):
decoded = base64.standard_b64decode(crypted_message)
key = RSA.importKey(rsa_decryption_key)
ct_int = bytes_to_int(decoded)
pt_int = pow(ct_int, key.d, key.n)
return int_to_bytes(pt_int, key.size_in_bytes()).lstrip(b'\x00')
Tiskni
Sdílej: