The Bengals placed cornerback Davontae Harris on injured reserve to open a roster spot for Johnson. Harris suffered a knee injury during the preseason.
Hackenberg, 23, was waived by the Philadelphia Eagles this weekend as they trimmed down to their initial 53-man roster. A second-round pick out of Penn State in 2016, Hackenberg was unable to beat out his competition in two seasons with the New York Jets. He was traded to the Oakland Raiders in May for a conditional seventh-round pick. The Raiders waived him in June, however, negating the trade.
He made his debut for the Eagles in the preseason finale Thursday against the Jets, going 7-of-16 for 69 yards with two interceptions. He also was charged with a lost fumble, and he rushed for 66 yards on five carries.
Johnson, 31, was released with the initial wave of cuts after preseason, but Bengals coach Marvin Lewis indicated Saturday that he could be back after the team made more moves to finalize its roster.
Excluding one season in which he signed with the Buccaneers, Johnson has been with the Bengals since they selected him in the third round of the 2009 draft.
ESPN's Katherine Terrell and Tim McManus contributed to this report.