パスワードを忘れた? アカウント作成
13913591 journal
日記

route127の日記: ローソンのインストアバーコードからの消費期限日時の復号 5

日記 by route127

セブンイレブンでオーナと本部が値引きで揉めてたのがnanacoにポイント還元する方針になったとかで、その話自体には特に興味ないのだが、消費期限の数時間前にレジで自動的に処理される仕組みが気になった。
はてブで、

という書き込みを見て、これまでに2~3回程消費期限切れがレジでのバーコードスキャン時のブザ鳴動で判明したことがあったことを思い出し、バーコードへの消費期限情報の埋め込みを確信した。
そこで手持ちの中で一番豊富なローソンのバーコードを確かめてみると、同じ商品でも違うバーコードが振られており、どうも時間データが含まれるようであった。
結論から言うと右端のチェックディジットを除く4桁が消費期限情報で、消費期限月や分の情報は持っておらず日時のみで、それらは4桁コードをxとすると以下の剰余演算から算出できることを力づくで確かめた。

h = mod((x-1)/12, 24)
d = mod((x-12h-1)/9, 31)+1

例えば、「2019年5月16日の午前5時」に消費期限を迎える商品の当該領域には4桁数字4381が割り当てられているが、ここから

(4381-1)/12 mod 24 = 5
(4381-12x5-1)/9 mod 31 + 1 = 16

として16日午前5時の消費期限日時を復号できる。

そんな計算をしてたら日曜日が潰れたが、ひとまず2012年の書き込みにあるローソンでの消費期限切れおにぎりのPOSすり抜け(真偽不明)は2019年現在の時点でシステム上はあり得なさそうだと言える。
ちなみにバーコードでの消費期限識別システム自体は2001年頃からあるらしい。

  • セブンイレブンのコールスロー(千切りキャベツの袋詰めみたいなやつ)、消費期限切れをスルーしてレジ通ったな。
    半日過ぎたくらいで廃棄になるのはしのびない…と思ってわざと期限切れてるのを手にとってレジに持っていってみたらそのまま買えたので、美味しくいただきました。

    期限切れの品が陳列されていたこと自体はまずいとは思う。

    ここに返信
  • by nemui4 (20313) on 2019年05月21日 6時52分 (#3618176) 日記

    製品の生産情報のみ入ってそうな気がする。
    安易に考えると
    製品番号、lot(製造場所)、製造日時
    とか。

    そしてPOSの方に製品番号毎の販売期限情報があって、レジで読み取った時に
    if(("現在日時" - "製造日時") "販売期限{製品番号}")
    とかで判定してそう。

    ここに返信
  • by Anonymous Coward on 2019年05月21日 1時13分 (#3618121)

    銀行や鉄道・航空など時折システム不良によるサービス停止がニュースになるけど、
    コンビニのPOSに問題があったってあんまり聞かないような・・・。
    サービスの追加など結構煩雑に機能拡張している印象があるけど、
    何が違うんですかね。

    ここに返信
typodupeerror

犯人は巨人ファンでA型で眼鏡をかけている -- あるハッカー

読み込み中...