標籤

2018年9月23日 星期日

短網址QR Code APP

Date: 20180923
Version: 1

會想要做這個原因在於,現在公司的短網址和QR Code都是使用goo.gl的服務產生,但該服務於明年就會結束了,所以才在想要如何繼續下去。

會分成兩塊,一個短網址,一個QR Code,有的單位需要短網址,但另一個單位需要QR Code,而需要QR Code的那個單位會需要先行產生後,等相關內容確定後才會放上去正稿,因此會使用官網伺服器進行跳轉的方式,來達成動態連結的效果。

雖然如此,後來想想雖然有的單位需要短網址,但如果是用我的方法話,不就每次都要在官網建立跳轉嗎?很明顯是個浪費人力的方法,但既然都做了,還是紀錄一下好了。

QR Code
比較簡單,因為先前那一個加密的APP已經做過了,這次只是再把方法寫出來一次。

短網址
使用的方法是方法一[1],因為方法二我看不懂,所以採用方法一,十進位轉為XX進位法,所以你需要兩個東西,十進位,XX進位,XX進位目前選用的是58進位法,格式為大寫小寫數字[2],刪除容易讓人搞混的大寫O和零0,以及大寫I和小寫l,這四個在APP上的呈現容易令人疑惑,故刪除。

而十進位的來源,需為主鍵[1],也就是不會重複的一串數字,而有甚麼數字是不會重複的呢?我選擇的是時間,年月日時分秒,六個節段,時間是唯一的,不會有時間重複到,因此進行的第一次轉換,轉換過程主要是將十進位/58得商和餘[3],保留餘數,繼續將商/58德商'和餘',直到最後商<58,無法再進行除法,將最後商及過程得到的餘數,由後往前進行轉換為58進位法,就會得到一串簡碼,也就是短網址。

但在進行的過程中,發現年月日時分不太會變化,導致最後出現的簡碼,前幾個字串都幾乎一樣,後來我將得到的時間字串反轉,由後往前排,這樣的話,整個時間就會很常變動,因為秒數常變,導致除法得到的結果都不盡相同,例如: 20180923173717-->71737132908102,這個技巧還可以用在製作隨機種子時可以使用。

最後就是將得到的短網址做成QR Code而已,但對於實際進行似乎沒甚麼幫助。

參考來源
1. 短網址(short URL)系統的原理及其實現
2. The Base16, Base32, and Base64 Data Encodings
3. 二、八、十與十六進位 (數字系統) 轉換教學


沒有留言:

張貼留言