• 목록
  • 아래로
  • 위로
  • 댓글 0개
  • 쓰기
  • 검색

이슈 세로 바코드를 가린 싸이버거 코드 복원하는 원리

도르마무
10922 0 0
금지 규정 네 정치&시사 글이 아닙니다

24b0d121e09c28a8699fe8b115ef046ecf40cdf725

 

싸이버거 바코드

 

중간에 세로로 한줄이 지워져 있다.

 

바코드를 복원해보자.

 

 

1. 우선 바코드로 쓰인 CODE128은 여러곳에서 매우 자주 쓰이며, BSBSBS 코드를 가지고 있다.

 

무슨 의미냐면

 

 

 

24b0d121e09c28a8699fe8b115ef046541affa

 

코드 조각이 바(B) 하나, 공간(S) 하나 X3의 구성으로 되어 있다는 의미다.

 

 

24b0d121e09c28a8699fe8b115ef04699330f2bb

 

사이즈와 공간이 핵심이므로

우선 바코드 전체에 1와 0으로 갯수를 적어놓도록 한다.

 

 

 

 

 

 

24b0d121e09c28a8699fe8b115ef046eca4dcff6

 

 

먼저 시작부분.

 

11010010000 = 211214 = 시작 코드 B 임을 알 수 있다.

 

 

 

 

 

24b0d121e09c28a8699fe8b115ef046ecc49ccf3

 

 

그러나 곧바로 바코드 형식을 코드 C로 바꾸는 코드가 나옴. (10111011110)

 

 

 

 

24b0d121e09c28a8699fe8b115ef0469963af3bc

 

이어서 94 (10001011110) 가 나오고

이걸 반복해주면 됨.

 

 

 

 

24b0d121e09c28a8699fe8b115ef04699c3bf3b4

 

문제의 부분이 발견되었음.

 

0이 6개나 되는 경우는 없기 때문임.

 

그럼 반대서부터 계산해 오도록 하자.

 

 

 

 

24b0d121e09c28a8699fe8b115ef0464d684e0cf

 

한자리가 비어 있음을 알 수 있다.

 

? 에 들어가는 바코드는, 110으로 시작해서 0100으로 끝난다.

 

 

 

24b0d121e09c28a8699fe8b115ef046f5d4c9b9b

 

110 으로 시작하는 값은 29

 

 

 

 

24b0d121e09c28a8699fe8b115ef0468e5acec

 

 

동시에 0100으로 끝나면서 숫자 값을 가지는건 4개 뿐이다.

 

 

그럼 4개중에 뭐가 정답일까?

 

바코드의 검증을 위해 체크섬 계산을 해야한다.

 

 

 

24b0d121e09c28a8699fe8b115ef046f5e4f9e9c

 

바코드 맨 뒤에 붙은 FNC1 (기능1) 이라는 코드는 무슨 의미일까?

 

보통은 뒤에 붙는 일이 없다.

 

그러므로 이는 바코드 앞 내용의 검증을 위한 검증값(체크섬) 이다.

 

CODE128의 검증값 계산은 다음과 같다.

 

(시작 코드 값 + (자리별 코드 * 위치값)) / 103 의 나머지 값이 검증값이다.

 

즉, 검증값 계산을 끝낸 바코드의 값이 FNC1의 값인 102가 나온다면 올바른 바코드라는 의미다.

 

 

 

 

24b0d121e09c28a8699fe8b115ef0469903bf0bc

 

먼저 각 코드별 값을 기재한다.

 

 

 

24b0d121e09c28a8699fe8b115ef04699d38ffb4

 

각각 104, 99, 94, 63, 0, ?, 92, 51, 102 다.

 

코드 C는 숫자표시용 코드인데, 공백은 0을 의미하기 때문임.

 

여기서 ? 에 들어갈 수 있는 값은 10, 11, 21, 22 4가지 경우이므로

 

우선 10 부터 테스트한다.

 

 

 

24b0d121e09c28a8699fe8b115ef0469963bf2bc

 

나온 값이 92니까 저 자리에 바코드 10이 들어가는건 아니다 라는걸 알 수 있다.

 

 

 

 

 

24b0d121e09c28a8699fe8b115ef0469903fffb9

 

 

11을 넣었을 경우 102가 나오므로 11이 들어가는게 맞다는걸 알 수 있다.

 

혹시 모르니 나머지 두개도 더 계산함.

 

 

 

24b0d121e09c28a8699fe8b115ef0469913ef3ba

 

21의 경우도 아님.

 

 

 

 

 

24b0d121e09c28a8699fe8b115ef0469913bfebb

 

물론 22도 아님.

 

즉, 바코드 한줄이 아닌 아예 세 줄이 비어 있더라도

 

검증값(체크섬) 검사에 의해 어떤 코드가 들어가는지 알아낼 수 있는데

 

위의 싸이버거 바코드의 경우 빈 자리에 11이 들어가므로

 

 

 

 

24b0d121e09c28a8699fe8b115ef046c60f121499e

 

이런식으로 처음의 바코드를 온전하게 복원 해 낼 수 있으며

 

 

 

24b0d121e09c28a8699fe8b115ef046f5b449097aa

 

휴대폰으로 인식시켰을 때 제대로 인식하므로

 

싸이버거 코드는 9463 0011 9251 이라는 결론이 나오게 된다.

 

 

 

 

 

 

 

 

 

 

그리고 이 작업을

 

 

24b0d121e09c28a8699fe8b115ef0468e6a2ea

 

 

24b0d121e09c28a8699fe8b115ef046b6c689532

 

 

1분 내로 할 줄 알아야 싸이버거를 먼저 먹을 수 있다. 

 

 

 

 

 

 

무슨말인지 이해했어 !!

 

 

image.png.jpg

 

신고공유스크랩

댓글 0

댓글 쓰기
0%
0%
에디터 모드

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

이 댓글을 삭제하시겠습니까?

공유

퍼머링크
태그 : 끝까지