incl. a calculator, a hash encoder + rot13 and b64!, and a "what time is it" with timezone selection frontend injected in $payload["left"] in web.php you can see this live [on my instance](https://4get.silly.computer/web?s=7%2B8(9%5E2)&scraper=brave&nsfw=yes) (there are some issues that aren't related to this PR. favicons, etc. I'll fix them later.) Reviewed-on: #10 Co-authored-by: cynic <admin@cynic.moe> Co-committed-by: cynic <admin@cynic.moe>
		
			
				
	
	
		
			40 lines
		
	
	
		
			860 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			860 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| include_once("oracles/base.php");
 | |
| class encoder extends oracle {
 | |
| 	public $info = [
 | |
| 		"name" => "text encoder/hasher"
 | |
| 	];
 | |
| 	private $special_types = [
 | |
| 		"rot13",
 | |
| 		"base64"
 | |
| 	];
 | |
| 	public function check_query($q) {
 | |
| 		$types = array_merge($this->special_types, hash_algos());
 | |
| 		foreach ($types as $type) {
 | |
| 			$type .= " ";
 | |
| 			if (str_starts_with($q, $type)) {
 | |
| 				return true;
 | |
| 			}
 | |
| 		}
 | |
| 		return false;
 | |
| 	}
 | |
| 	public function generate_response($q)
 | |
| 	{
 | |
| 		$type = explode(" ", $q)[0];
 | |
| 		$victim = substr($q, strlen($type)+1);
 | |
| 		if (in_array($type, hash_algos())) {
 | |
| 			return [$type." hash" => hash($type, $victim)];
 | |
| 		}
 | |
| 		switch ($type) {
 | |
| 			case "rot13":
 | |
| 				return ["rot13 encoded" => str_rot13($victim)];
 | |
| 			case "base64":
 | |
| 				return [
 | |
| 					"base64 encoded" => base64_encode($victim),
 | |
| 					"base64 decoded" => base64_decode($victim)
 | |
| 				];
 | |
| 		}
 | |
| 		return "";
 | |
| 	}
 | |
| }
 | |
| ?>
 |