@kuketzblog #Datensparsamkeit ist der erste Schritt fuer mehr #Datenschutz und erhoeht automatisch mit die #ITsicherheit in gewissen Maßen. Daher gebt nur dort Eure echten Daten /eMail-Adresse(n) / Anschrift an, wo unbedingt notwendig und prueft mehrfach auf welche Wedsite Ihr wirklich gelandet seid inkl. der zugehoehrigen Verschluesselung.und der Zertifizierungsstelle ! ...
...Einfach so #QR-Codes eingelesen oder #URLs von verlinkten Websites, insbesondere Kurzlinks folgt man nicht.
A Recursive QR Code
https://shkspr.mobi/blog/2025/03/a-recursive-qr-code/
I've been thinking about fun little artistic things to do with QR codes. What if each individual pixel were a QR code?
There's two fundamental problems with that idea. Firstly, a QR code needs whitespace around it in order to be scanned properly.
So I focussed on the top left positional marker. There's plenty of whitespace there.
Secondly, because QR codes contain a lot of white pixels inside them, scaling down the code usually results in a grey square - which is unlikely to be recognised as a black pixel when scanning.
So I cheated! I made the smaller code transparent and gradually increased its opacity as it grows larger.
I took a Version 2 QR code - which is 25px wide. With a 2px whitespace border around it, that makes 29px * 29px.
Blow it up to 2900px * 2900px. That will be the base image.
Take the original 25px code and blow it up to the size of the new marker, 300px * 300px. Place it on a new transparent canvas the size of the base image, and place it where the marker is - 400px from the top and left.
Next step is creating the image sequence for zooming in. The aim is to move in to the target area, then directly zoom in.
The whole code, if you want to build one yourself, is:
#!/bin/bash# Input fileinput="25.png"# Add a whitespace borderconvert "$input" -bordercolor white -border 2 29.png# Upscaled image sizeupscaled_size=2900# Scale it up for the baseconvert 29.png -scale "${upscaled_size}x${upscaled_size}"\! base.png# Create the overlayconvert -size "${upscaled_size}x${upscaled_size}" xc:none canvas.pngconvert "$input" -scale 300x300\! 300.pngconvert canvas.png 300.png -geometry +400+400 -composite overlay.png# Start crop size (full image) and end crop size (target region)start_crop=$upscaled_sizeend_crop=350# Zoom-in target position (top-left corner)target_x=375target_y=375# Start with a completely opaque imageoriginal_opacity=0# Number of intermediate imagessteps=100for i in $(seq 0 $((steps - 1))); do # Calculate current crop size crop_size=$(echo "$start_crop - ($start_crop - $end_crop) * $i / ($steps - 1)" | bc) crop_size=$(printf "%.0f" "$crop_size") # Round to nearest integer # Keep zoom centered on the target crop_x_offset=$(echo "$target_x - ($crop_size - $end_crop) / 2" | bc) crop_y_offset=$(echo "$target_y - ($crop_size - $end_crop) / 2" | bc) # Once centred, zoom in normally if (( crop_x_offset < 0 )); then crop_x_offset=0; fi if (( crop_y_offset < 0 )); then crop_y_offset=0; fi # Generate output filenames background_file=$(printf "%s_%03d.png" "background" "$i") overlay_file=$(printf "%s_%03d.png" "overlay" "$i") combined_file=$(printf "%s_%03d.png" "combined" "$i") # Crop and resize the base convert "base.png" -crop "${crop_size}x${crop_size}+${crop_x_offset}+${crop_y_offset}" \ -resize "${upscaled_size}x${upscaled_size}" \ "$background_file" # Transparancy for the overlay opacity=$(echo "$original_opacity + 0.01 * $i" | bc) # Crop and resize the overlay convert "overlay.png" -alpha on -channel A -evaluate multiply "$opacity" \ -crop "${crop_size}x${crop_size}+${crop_x_offset}+${crop_y_offset}" \ -resize "${upscaled_size}x${upscaled_size}" \ "$overlay_file" # Combine the two files convert "$background_file" "$overlay_file" -composite "$combined_file"done# Create a 25fps video, scaled to 1024pxffmpeg -framerate 25 -i combined_%03d.png -vf "scale=1024:1024" -c:v libx264 -crf 18 -preset slow -pix_fmt yuv420p recursive.mp4
blog! “A Recursive QR Code”
I've been thinking about fun little artistic things to do with QR codes. What if each individual pixel were a QR code?
There's two fundamental problems with that idea. Firstly, a QR code needs whitespace around it in order to be scanned properly.
So I focussed on the top left positional marker. There's plenty of whitespace there.
Secondly, because QR codes…
Read more: https://shkspr.mobi/blog/2025/03/a-recursive-qr-code/
⸻
#art #qr #QRCodes
@psuPete Recommends - Weekly highlights on cyber security issues, 03/01/25 https://www.llrx.com/2025/03/pete-recommends-weekly-highlights-on-cyber-security-issues-march-1-2025/ Five posts from this week: #Trump has purged government websites; The Wayback Machine trying to preserve the record; Turn off your read receipts. They’re a #security risk; You can now easily remove personal info from #Google Search results; Google plans to end #SMS verification in favor of #QR codes; and #Verizon isn’t doing enough to protect customers from #robocall scams. #cybercrime #privacy
Did you know that you can invoke Siri Shortcuts by scanning a QR code? The shortcut has to exist on the device on which you scan the QR code, of course. The URL you have to encode is:
shortcuts://run-shortcut?name=<insert shortcut name here>
The shortcut name can even contain spaces and they don’t have to be encoded as %20, easy peasy.
One of my use cases: Enable/Disable the guest wifi by scanning a QR code that sticks on a door.
#qrcode #sirishortcuts #ios #iphone #automation #workflow #qr
Making easy-to-scan #QR codes is an under-appreciated skill.
Not using super long URLs from some verbose CMS is a good start, but there's more tricks:
為什麼帶大寫字母的 QR 碼比小寫字母的 QR 碼要小?- Terence Eden's Blog
➤ 大寫字母在 QR 碼中的優勢
✤ https://shkspr.mobi/blog/2025/02/why-are-qr-codes-with-capital-letters-smaller-than-qr-codes-with-lower-case-letters/
文中探究為何帶大寫字母的 QR 碼比小寫字母的 QR 碼更小的原因,並解釋了這背後的技術原理。
+ 看完這篇文章後,對 QR 碼背後的技術原理有更深入的瞭解,很有趣!
+ 原來大小寫字母在 QR 碼中使用有這麼多差別,學到了一個小技巧!
#QR 碼技術
Fun fact: #QR codes can be either alphanumeric mode or binary mode. Alphanumeric mode is all-caps and is more concise, so your URL will generate simpler QR codes when it is entirely uppercase.
Here's a very detailed explanation by Terrence Eden, @blog: https://shkspr.mobi/blog/2025/02/why-are-qr-codes-with-capital-letters-smaller-than-qr-codes-with-lower-case-letters/
Why are QR Codes with capital letters smaller than QR codes with lower-case letters?
Take a look at these two QR codes. Scan them if you like, I promise there's nothing dodgy in them.
Left is upper-case HTTPS://EDENT.TEL/
and right is lower-case https://edent.tel/
You can clearly see that the one on the left is a "smaller" QR as it has fewer bits of data in it. Both go to the same URl, the only difference is the casing.
What's going on?
Your first thought might be that there's a different level of error-correction. QR codes can have increasing levels of redundancy in order to make sure they can be scanned when damaged. But, in this case, they both have Low error correction.
The smaller code is "Type 1" - it is 21px * 21px. The larger is "Type 2" with 25px * 25px.
The official specification describes the versions in more details. The smaller code should be able to hold 25 alphanumeric character. But https://edent.tel/
is only 18 characters long. So why is it bumped into a larger code?
Using a decoder like ZXING it is possible to see the raw bytes of each code.
UPPER
20 93 1a a6 54 63 dd 28 35 1b 50 e9 3b dc 00 ec11 ec 11
lower:
41 26 87 47 47 07 33 a2 f2 f6 56 46 56 e7 42 e746 56 c2 f0 ec 11 ec 11 ec 11 ec 11 ec 11 ec 11ec 11
You might have noticed that they both end with the same sequence: ec 11
Those are "padding bytes" because the data needs to completely fill the QR code. But - hang on! - not only does the UPPER one safely contain the text, it also has some spare padding?
The answer lies in the first couple of bytes.
Once the raw bytes have been read, a QR scanner needs to know exactly what sort of code it is dealing with. The first four bits tell it the mode. Let's convert the hex to binary and then split after the first four bits:
TypeHEXBINSplitUPPER20 93
00100000 10010011
0010 000010010011
lower41 26
01000001 00100110
0100 000100100110
The UPPER code is 0010
which indicates it is Alphanumeric - the standard says the next 9 bits show the length of data.
The lower code is 0100
which indicates it is Byte mode - the standard says the next 8 bits show the length of data.
20 93
00100000 10010011
0010 0000 10010
lower41 26
01000001 00100110
0100 000 10010
Look at that! They both have a length of 10010
which, converted to binary, is 18 - the exact length of the text.
Alphanumeric users 11 bits for every two characters, Byte mode uses (you guessed it!) 8 bits per single character.
But why is the lower-case code pushed into Byte mode? Isn't it using letters and number?
Well, yes. But in order to store data efficiently, Alphanumeric mode only has a limited subset of characters available. Upper-case letters, and a handful of punctuation symbols: space $ % * + - . / :
Luckily, that's enough for a protocol, domain, and path. Sadly, no GET parameters.
So, there you have it. If you want the smallest possible physical size for a QR code which contains a URl, make sure the text is all in capital letters.
This blog post was exhibited at QR Show, NYC
blog! “Why are QR Codes with capital letters smaller than QR codes with lower-case letters?”
Take a look at these two QR codes. Scan them if you like, I promise there's nothing dodgy in them.
Read more: https://shkspr.mobi/blog/2025/02/why-are-qr-codes-with-capital-letters-smaller-than-qr-codes-with-lower-case-letters/
⸻
#qr #QRCodes
Russian hackers target Signal accounts in growing #espionage effort
Google’s Threat Intelligence identified rise in #Russian state-backed #hacking aimed at compromising #Signal #messenger
Primary technique involves exploiting Signal’s linked devices feature, allowing users to connect additional devices to their accounts
Hackers create malicious #QR codes when scanned, link a victim’s Signal account to a hacker device
https://kyivindependent.com/russian-hackers-target-signal-accounts-in-growing-espionage-effort/
Maybe the new #DMA #NFC #interoperability measures for #iOS will lead to a better way for train companies to share e-tickets with customers than #QR codes, which need to be scanned by gates… which simultaneously try to take a card payment from your i#Phone
You know what though, #QR codes are actually pretty neat.
As a kid, I never expected that one day we'd be able to just slap 2953 bytes on the side of whatever object we want to slap 2953 bytes onto. Just, like, whatever bytes we feel like slapping that day.
@miekeroth : naast alle genoemde nadelen zou het ook een privacy- en security-drama worden: https://infosec.exchange/@ErikvanStraten/113925356312627159.
Tip: de Alt tekst onder onderstaande plaatjes bevat uitleg voor wat u ziet.
QR-codes: privacy/security-drama
Minister Beljaarts is niet goed bij zijn hoofd (https://nos.nl/artikel/2553994-minister-steunt-qr-plan-van-supermarkten-nederlands-etiket-niet-heilig). Marketingmensen willen dit niet, niet iedereen heeft een smartphone of wil QR-codes scannen, en bovendien zijn URL-QR-codes een privacy- en security-drama.
QR-codes op de meeste producten in de supermarkt wijzen namelijk naar websites van derde partijen en/of gebruiken URL-verkorters (die zijn zeker van derde parijen).
Ook zijn er veel QR-codes met een http- (in plaats van https-link) of geheel zonder protocolaanduiding (wat browsers nog steeds als http interpreteren. Waarom dat een risico is leest u in mijn antwoord op deze toot.
Voorbeelden van hufterige QR-codes (ik heb steeds een spatie tussen // en de domeinnaam gevoegd zodat Mastodon de http/https informatie niet verstopt).
Prodent tandpasta https:// dl.ulcp.io/01/3014230002601
Calvé pindakaas https:// qr.ulcp.io/W5NKZMFC
Crystal Clear framboos/bosbes https:// qrco.de/crystalclear_3
Flesje Coke Zero https:// cokeurl.com/srn5000112646702
Bus Pringles http:// pringles.eu/1w9vz52
Lassie Bio Zilvervliesrijst http:// l.ead.me/462ZILVER
Merk op dat *elke* "doorstuurwebsite vanalles over u te weten kan komen en cookies kan zetten. Ook kan een "doorstuurder" door een criminele partij worden overgenomen, en uw browser naar een andere website sturen dan de maker van het product bedoelde. Op zo'n nepsite kunt u vervolgens worden opgelicht.
Maar ook maken maketeers, die graag aanrommelen met QR-codes, fouten - zoals (in 2015) Heinz met ketchupflessen (https://id.nl/huis-en-entertainment/computer-en-gaming/software/qr-code-op-ketchupfles-verwijst-per-ongeluk-naar-pornosite).
1/2
Building a QR Code #HTML Web Component via https://mstdn.social/@scottjehl
#Evil QR code!
This #QR #Code Leads To Two Websites, But How? https://hackaday.com/2025/01/23/this-qr-code-leads-to-two-websites-but-how/