跳至主要內容
获取下一个完全对称日

前言

今日热点:20211202完全对称日。其实就是数学上的回文数,获取下一个完全对称日可以利用python的字符串切片判断即可。

代码

#!/usr/bin/python3
import time
now = int(time.time()) 
while (1):
    now  = now + 60*60*24
    timeStruct = time.localtime(now) 
    strTime = time.strftime("%Y%m%d", timeStruct)
    if strTime[::-1]==strTime:
        print('The next palindrome day:',strTime) #py timeR.py  --> The next palindrome day: 20300302
        break;

ycyin小于 1 分钟算法&数学Python
几道简单的CTF题目思路

前言

公司内部举行的小比赛,之前从未参与过此类比赛,所以各位看官大佬多多指教。简单来说就是给出题目从中找出flag就成功了,flag格式为flag{32位md5加密字符串}。感觉其中几道有点意思,记录一下!

hard-js

关于JS的一道题,主要是要分析js代码。从源码中可以看出flag的32位md5串每一位都可以推算出来:

<script>
	var check = document.getElementById('check')
	check.onclick = function() {
		var t = document.getElementById('flag').value;
		checkFlag(t) ? alert("Congratulations!!! Your flag is " + t) : alert("You need good good study~~")
	}
	function checkFlag(f) {
		l = []
		for (let i of f) {
			l.push(i.charCodeAt())
		}
		return (
			f.length === 38
			&& l[10] === 51
			&& sub(l[6], l[5]) === 1
			&& f.substring(37, 38) === '}'
			&& l[6] === l[7]
			&& mul(l[10], 2) === l[12]
			&& sub(l[9], l[8]) === 1
			&& l[7] === l[8]
			&& f.substring(0, 5) === 'flag{'
			&& div(l[9], 2) === sub(l[10], 1)  
			&& add(l[10], l[11]) === add(l[12], 6)
			&& btoa(f.substring(13, 21)) === "MDMzOGIwNmE="
			&& e_l(l.slice(21,29).reverse(), [48, 101, 52, 56, 56, 102, 102, 53])
			&& c(l.slice(29,37))
			)
	}
	function add(a, b) {
		return a+b
	}
	function sub(a, b) {
		return a-b
	}
	function mul(a, b) {
		return a*b
	}
	function div(a, b) {
		return Math.floor(a/b)
	}
	function xor(a, b) {
		return a^b
	}
	function e_l(a, b) {
		a.forEach((i,j)=>{
			if (i !== b[j]) {
				return false
			}
		})
		return true
	}
	function c(a){
		return 
		a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]==604 &&
		a[0]-a[1]-a[2]-a[3]-a[4]-a[5]-a[6]-a[7]==-406 &&
		a[1]+a[3]+a[5]+a[7]-a[6]-a[2]-a[0]-a[4]==6 &&
		a[0]+a[1]-a[2]-a[3]==-3 &&
		a[0]-a[1]+a[2]+a[3]==201 &&
		a[4]-a[5]+a[6]+a[7]==109 &&
		a[4]+a[5]-a[6]-a[7]==-1 &&
		a[1]+a[3]-a[5]*a[7]==-5394 &&
		a[0]+a[2]-a[4]*a[6]==-5145
	}
</script>

ycyin大约 10 分钟算法&数学CTFPythonJava