よぴやまの自由帳

いろいろなめも

Python で文字列 -> int, int -> 文字列

Pythonで数値の形式じゃない文字列をintにするときにちょっとよくわからなかったのでメモっておきます.

import binascii
string = "Hello"
> Hello

a = binascii.hexlify(string.encode('utf-8'))
> b'48656c6c6f'

b = int.from_bytes(a, "little")
> 482684654443227096954932

これで文字列を一旦byteに変換してそれをintに変換することでstr -> intができます.

c = b.to_bytes((b.bit_length()+7) // 8, "little")
> b'48656c6c6f'

d = binascii.unhexlify(c).decode('utf-8')
> Hello

戻すときはintをbyteに変換してそれを文字列にします.最終的にint -> strとなります.

Windowsの設定むずかしいというお話

ここ2か月ほどバイトで社畜をこなしてたおかげでゲーミングPCを買うことがで最近はPCの設定いじる遊びをしていたのですが,久しぶりにWindowsを触ったせいか詰んだりしたところがあったのでそれのメモです.

  • WSL導入でエラー
  • 邪悪な文字コードを使わない
  • WSLについてるgccとかの場所
  • eclipse
  • Kitematic とか Docker
続きを読む

KOSENセキュリティコンテスト2017に参加した(日記)(write up)

2017/10/21 ~ 2017/10/22までKOSENセキュリティコンテスト2017に参加してきました.

昨年の大会では"ONIHAINAI"というチームとして参加していたんですが今年は即席チームの"チャーハン定食背脂多め"というチームとして参加してきました.

開会式や閉会式でwriteupを書こうという話があったのですが,writeupとしてpublishするのはかなり気が引けたので日記として投稿してみます.

競技開始と同時に僕のmacさんが再起動されVPNに接続されないという問題が発生したため解きやすい問題は全てチームメイトに任せました(地味に申し訳ない)ので,その問題については省いて自分がやった問題や解けたものについて書きます.

結果の画像が上がっていたので一応載せて起きます.

f:id:yopiyama:20171023181146j:plain

目次

  • 目次
    • Binary 200 ボスを倒せ
    • Crypto 100 解凍して解答せよ
    • Crypto 200 WeakRSA1
    • Crypt 300 WeakRSA2
    • Web 200 Web1
続きを読む

Pythonの書き方メモ

Pythonの基本的な書き方とかをメモっていこうと思います.

定期的に追記していこうかなと思っています.

見易さ的に単発記事のほうがいい気がしたので別記事に分けて投稿していきます


目次

  • 目次
    • 辞書
    • 最大値と最小値
    • ラムダ式
    • ビット演算
    • inputする時にいい感じに型変換

続きを読む

LineNotifyを少しやって見た.

久しぶりの更新です.編入の勉強しなきゃいけないけど,なかなかやる気がおきないのでPythonで遊んだりして息抜きしてます.


twitterを眺めていたらLine NotifyなるものがLINEにはあり,それをPythonで使えるという情報を目にしたので調べて少しやってみたのでメモがてら簡単にまとめておきます.

Line Notifyとは?

Line Notifyのページによると,Line Notifyと連携することで色々なWebサービスの通知をLineで受け取ることができるそうです.
主な連携サービスとしてIFTTTとかGithubとかがあってそれらの通知をLINEで受け取れるから便利だねって感じのようです.

  • Line Notifyとは?
  • 始め方
  • 感想
続きを読む

日記?


 最近,pythonの勉強を始めました.と言ってもpaizaのスキルチェックをpythonで解くってだけなんですけどね. 今までは学校の授業でCとかJSとかを少し書く程度なので,結構調べては書いてを繰り返してやってます.

 僕は今,C問題をメインで解いてるんですが,あれで初級レベルなんですね.問題読む感じでは結構簡単そうなアルゴリズムとかで解けそうな気がするんですけど,実際にコーディングするとエラー吐いたり,出力が合わなかったりで中々得点が伸びません.なぜでしょう?←

 アルゴリズムも授業で習ったのといえば基本的なソートや探索のぐらいなんで,勉強不足が結構ある気がします.なんでアルゴリズム勉強もしなきゃだし,pythonの勉強もしなきゃだし,あと受験とか定期試験とか諸々勉強しなきゃいけないことが多くて大変です.それと通信やセキュリティを専門にしたいなぁと思ってるしそれの勉強も...

 情報系の強い人たちってどんな風に時間使ってるのかほんと謎です.